The user-propagator object has to be manually disposed (IDisposable), otherwise it stays in memory forever, as it cannot be garbage collected automatically
* Dotnet Api: suppress GC finalization of dotnet context in favor of re-registering finalization
* Dotnet Api: enable concurrent dec-ref even if context is created without parameters.
* Dotnet Api: removed dead code.
The notion of reference counted contexts never worked.
The reference count to a context only ends up being 0 if the GC kicks in and disposes the various z3 objects. A call to Dispose on Context should free up all resources associated with that context. In exchange none of the resources are allowed any other operation than DecRef. The invocations of DecRef are protected by a lock and test on the context that the native pointer associated with the context is non-zero. Dispose sets the native pointer to zero.
Z3_enable_concurrent_dec_ref ensures that:
- calls to decref are thread safe. Other threads can operate on the context without interference.
The Z3_context ensures that
- z3objects allocated, but not disposed during the lifetime of Z3_context are freed when Z3_context is deleted (it triggers a debug warning, but this is now benign).
TraceToFile does not correspond to the functionality of enable_trace. Z3_enable_trace tags a trace tag as input. It can be invoked multiple times with different tags. The debug tracing then shows logs with the corresponding tags.
* WiP: Test nightly version number change
* Fix debug assert
* WiP: test nuget publish to AzDo feed for nightly build
* WiP: Make Nuget deploy separate stage
* WiP: fix nightly stage name
* change nuget push to vstsfeed
* Try case sensitive name for artifacts
* WiP: use artifact folder names
* add Rev version to package
* WiP: build def variation on nightly build version
* WiP: use Build_BuildNumber and Build_DefinitionName
* WiP: using hyphen in nightly version
* Tag nightly packages with datetime
* fix commit
* Build.BuildId and Build.DefinitionName
* WiP: change suffix format to lead with alpha
* test z3public feed publish
* revert public publish test
* WiP: test build# versioning scheme
* WiP: another variant on version number for nightly
Co-authored-by: jfleisher <jofleish@microsoft.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* Dispose of intermediate Z3Objects created in dotnet api.
* Set C# LangVersion to 8.0.
* Fix build errors.
* Fix warning about empty using statement.
* Fix Xor to only dispose of objects that it creates internally.
* Clean up warnings in compile for documentation notes
* remove snk from local build
Co-authored-by: jfleisher <jofleish@microsoft.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>