-
Notifications
You must be signed in to change notification settings - Fork 747
Added CoreCLR 2.0 build target. Compile issues fixed. #519
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@dmitriyse, thanks! @vmuriart, @tiran, @brianlloyd, @filmor and @tonyroberts, please review this. |
Codecov Report
@@ Coverage Diff @@
## master #519 +/- ##
==========================================
- Coverage 77.34% 77.16% -0.19%
==========================================
Files 65 65
Lines 5611 5610 -1
Branches 889 888 -1
==========================================
- Hits 4340 4329 -11
- Misses 983 993 +10
Partials 288 288
Continue to review full report at Codecov.
|
Tested under windows, miniconda python 3.5, x64. All tests are passed. |
@dmitriyse why do you have 2 similar pull requests? |
This #518 PR contains only new build system which is able to build all current targets for windows and linux. And contains absolutely minimum changes in the code. But this request contains NetStandard 2.0 build target + fixes in code to allow compile and pass tests. |
Please see this comment #518 (comment), this PR should add new build target after #518 will be merged into the master. |
@dmitriyse can you merge these 2 PR? I still don't understand why you separated them? And I still don't see any testing done for .NET Core target. |
@denfromufa |
Debug session finished. I need to fix points received from this session. [DllImport(_PythonDll, CallingConvention = CallingConvention.Cdecl)]
internal static extern int PyDict_SetItemString(IntPtr pointer, string key, IntPtr value); Should be modified to [DllImport(_PythonDll, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
internal static extern int PyDict_SetItemString(IntPtr pointer, string key, IntPtr value); And other build script fixes. |
f7516e7
to
7bc892e
Compare
I managed to get EmbeddingTests works under NetCoreApp 2.0 target on all configurations except x86 |
Both targets (net40 and netcoreapp2.0) are build and tested in the same --xplat CI configuration. It's simpler to implement and saves some time on awaiting build result. |
Also I found a problem under NetCoreApp 2.0 - import "numpy" failed. |
This PR is ready for merging to the master. There are two main missing features, that can be implemented later:
|
…o a slow Marshal-based solution. + x86 fix.
cc7f5f8
to
307f1dd
Compare
DEBUG;TRACE fix for the case VS + non empty PYTHONNET_DEFINE_CONSTANTS
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same as #518, I think we should go ahead with the current state for now.
* Full featured xplat build. * NetCoreApp 2.0 target added, compile issues fixed, CI system improved. * .Net 45 TargetingPack System.XML.dll naming fix. (For xplat linux build). * Setup.py --xplat option refactored. Travis-ci build matrix extended. * AppVeyor matrix extended, xplat build added. * appveyor.yml yaml syntax fix. * NUnit dependency upgraded to 3.7. Changelog improved. * EmbeddingTest fixes, and stubs. * Fix for importing numpy and other python modules with native parts. * Changelog improved. * Build order improvement. * NetCoreApp 2.0 fix. EmitCalli does not supports cdecl. Falling-back to a slow Marshal-based solution. + x86 fix. * All finalizers are disabled until valid implementation. Helps to avoid non relevant CI build faults. * Mono builds now can be build on Windows. DEBUG;TRACE fix for the case VS + non empty PYTHONNET_DEFINE_CONSTANTS * Python.Runtime.dll now targets NetStandard2.0 inplace of NetCoreApp 2.0 * Wrong NETSTANDARD/NETCOREAPP define constant change. * Typo fix.
What does this implement/fix? Explain your changes.
Added dotnet core 2.0 build target. All tests are passed under win, py35, x64.
...
Does this close any currently open issues?
Work towards #96
...
Any other comments?
After a half of a year CoreCLR 1.0 will go away, so we can only offer CoreCLR 2.0 support.
Porting to CoreCLR 2.0 is much simpler than to CoreCLR 1.0. So we can do all the work right in the master. Xplat build fortunately can coexist side-by-side with the current build.
(See #518)
...
Checklist
Check all those that are applicable and complete.
AUTHORS
CHANGELOG