Skip to content

Release 3.0.0

Compare
Choose a tag to compare
@filmor filmor released this 29 Sep 15:16
· 115 commits to master since this release

What's Changed

  • Increase ob's ref count in tp_repr to avoid accidental free by @DanBarzilian in #1160
  • fixed crash due to a decref of a borrowed reference in params array handling by @lostmsu in #1163
  • Drop Python 2 support by @filmor in #1158
  • remove remoting block for .NET standard by @koubaa in #1170
  • Pybuffer by @koubaa in #1195
  • Fix appveyor would only test the PyPI package by @amos402 in #1200
  • Remove unnecessary CheckExceptionOccurred calls by @amos402 in #1175
  • Provide more info about failuers to load CLR assemblies by @lostmsu in #1076
  • Add syntax highlighting to Python code examples in README.rst [docs] by @SFM61319 in #1208
  • Remove non-existent PInvoke functions by @amos402 in #1205
  • Bad params object[] precedence (master) by @lostmsu in #1224
  • drop 3.4 and 3.5 by @koubaa in #1227
  • really remove old versions by @koubaa in #1230
  • Added a test for finalization on shutdown by @lostmsu in #1206
  • fix compiler warning by @koubaa in #1226
  • Ensure only implementers of IEnumerable or IEnumerator are considered Iterable by @danabr in #1241
  • Select correct method to invoke when keyword arguments are used by @danabr in #1242
  • Wrap returned objects in interface if method return type is interface by @danabr in #1240
  • Non-delegate types should not be callable by @alxnull in #1247
  • Make indexers work for interface objects by @danabr in #1246
  • Make it possible to use inherited indexers by @danabr in #1248
  • Add soft shutdown by @amos402 in #958
  • Fixed dllLocal not being initialized. by @benoithudson in #1252
  • Return interface objects when iterating over interface collections by @danabr in #1257
  • Make len work for ICollection<> interface objects by @danabr in #1253
  • Enable Source Link and symbol package generation during build by @lostmsu in #1259
  • Fixed polyfill for TypeBuilder.CreateType by @lostmsu in #1261
  • fix wrongly cased Microsoft.CSHARP.Targets by @vivainio in #1271
  • Intern string by @amos402 in #1254
  • Use .NET Core 3.1 LTS for tests (instead of 2.0) by @lostmsu in #1279
  • Python 3.9 by @filmor in #1264
  • Remove deprecated implicit assembly loading by @lostmsu in #1277
  • Ensure methods of Object are also available on interface objects by @danabr in #1284
  • Fix kwarg func resolution by @jmlidbetter in #1136
  • Allow creating new .NET arrays from Python using Array[T](dim1, dim2,…) syntax by @lostmsu in #1291
  • Detect the size of wchar_t (aka Runtime.UCS) at runtime using PyUnicode_GetMax by @lostmsu in #1298
  • TypeOffset class no longer depends on target Python version by @lostmsu in #1292
  • [Out] parameters no longer added to return tuple by @lostmsu in #1308
  • Added github actions workflow to replace travis by @lostmsu in #1307
  • Convert projects to SDK style by @filmor in #1209
  • Test other Operating Systems than Linux via Github Actions by @filmor in #1310
  • Ensure that param-array matching works correctly by @filmor in #1304
  • Remove API warnings as these will be stabilised for 3.0 by @filmor in #1315
  • Replace custom platform handling by RuntimeInformation by @filmor in #1314
  • Fixed CollectBasicObject test by @lostmsu in #1313
  • Implement inplace building and develop by @filmor in #1317
  • Drop the long-deprecated CLR.* alias by @filmor in #1319
  • Fix or disable warnings in Python.Runtime by @filmor in #1318
  • Fixed segfault in ClassDerived.tp_dealloc by @lostmsu in #1330
  • Fixed crash in finalizer of CLR types defined in Python, that survive engine shutdown by @lostmsu in #1260
  • Test for non-ASCII encoded method name by @filmor in #1329
  • Fix illegal delegate usage by @BadSingleton in #1328
  • PyIter: do not force dispose previous object upon moving to the next one by @lostmsu in #1331
  • Incorrectly using a non-generic type with type parameters now produces a helpful Python error instead of throwing NullReferenceException by @tminka in #1326
  • Call PyErr_NormalizeException for exceptions by @slide in #1265
  • TestPythonEngineProperties.SetPythonPath avoids corrupting the module search path for later tests by @tminka in #1336
  • ABI.Initialize gives a helpful message when the TypeOffset interop class is not configured correctly by @tminka in #1340
  • Better error messages from PyObject.AsManagedObject and DelegateManager.TrueDispatch by @tminka in #1344
  • Python tests can now be debugged by running them as embedded tests within NUnit by @tminka in #1341
  • Operator overloads support by @christabella in #1324
  • Domain reload test cases fixes by @BadSingleton in #1287
  • Add more more tests for in, out and ref parameters by @BadSingleton in #1349
  • Support comparison operators by @christabella in #1347
  • Disable implicit conversion from PyFloat to .NET integer types by @lostmsu in #1343
  • Add GetPythonThreadID and Interrupt methods in PythonEngine by @gpetrou in #1337
  • Disable implicit conversion from PyFloat to uint64 by @tminka in #1362
  • Disable implicit conversion from float to array index by @tminka in #1363
  • Better error messages for method argument mismatch and others by @tminka in #1361
  • Support ByRef arguments in event handlers by @tminka in #1364
  • Build single Python.Runtime.dll for all platforms by @lostmsu in #1365
  • Fix exception string by @filmor in #1360
  • ParameterInfo.Name needs to be checked for null before usage by @filmor in #1375
  • Monthly NuGet release previews by @lostmsu in #1381
  • Sign Runtime DLL with a strong name by @gpetrou in #1382
  • New loading based on clr_loader by @filmor in #1373
  • Simplify PyScope by delegating ownership to PyObject instance by @lostmsu in #1367
  • implement list codec by @koubaa in #1084
  • Ensure interned strings can not be referenced after InternString.Shutdown by @lostmsu in #1394
  • Made InterruptTest more robust by @lostmsu in #1393
  • Adjust static libpython detection by @filmor in #1396
  • Remove Utf8Marshaler, set PyScope base class to PyObject, added PyModule by @lostmsu in #1391
  • ImportHook cleanup + PyObject.Length exception by @lostmsu in #1400
  • Suggest to set Runtime.PythonDLL when embedding in .NET by @lostmsu in #1411
  • Allow GIL state debugging; require GILState to be properly disposed by @lostmsu in #1397
  • Try libdl.so.2 on Linux before libdl.so by @lostmsu in #1425
  • PyType class, wrapper for Python types by @lostmsu in #1395
  • Reworked Enum marshaling by @lostmsu in #1392
  • Prevent stack overflow when an encoder is registered from Python by @lostmsu in #1429
  • Do not call find_libpython during import clr as Python.Runtime can find it on its own by @lostmsu in #1440
  • Fixed __cause__ on overload bind failure and array conversion by @lostmsu in #1442
  • Replace magic offsets with proper offset calculation by @lostmsu in #1441
  • Detect Py_TRACE_REFS at runtime and calculate object offsets accordingly by @lostmsu in #1426
  • Re-enable the domain reload tests by @BadSingleton in #1404
  • Dispose all temporary objects in PyCheck_Iter_PyObject_IsIterable_ThreadingLock_Test by @lostmsu in #1456
  • Use PyType instances instead of raw pointers by @lostmsu in #1431
  • Refactoring of tp_dealloc by @lostmsu in #1459
  • Refactoring of tp_clear by @lostmsu in #1460
  • Handle ProcessExit event by @lostmsu in #1458
  • Improve Python <-> .NET exception integration by @lostmsu in #1134
  • Add a failing test for Unicode conversion by @pkese in #1467
  • Modernize import hook by @BadSingleton in #1369
  • Fixed crash in ToArray when sequence explicitly denies len by @lostmsu in #1484
  • Prevent crash during debugging when attempting to inspect PyObject by @lostmsu in #1483
  • Fixed double call to PyType_Ready in CLR MetaType's tp_new by @lostmsu in #1486
  • Create PyIter from existing PyObject by @lostmsu in #1482
  • [WIP] Add ability to create module from C# by @slide in #1447
  • Fixed custom decoders not working for DateTime and Decimal by @lostmsu in #1497
  • Allow substituting base types for CLR types (as seen from Python) by @lostmsu in #1487
  • Property descriptor made visible on the reflected class by @lostmsu in #1512
  • Validate, that custom Python base types can be inherited from by @lostmsu in #1510
  • Names of .NET types changed to better support generic types by @lostmsu in #1509
  • Dynamic arithmetic ops raise correct Python exception on failure by @lostmsu in #1508
  • Py.Import and PyModule.Import return PyObject instead of PyModule by @lostmsu in #1530
  • Remove needsResolution hack by @lostmsu in #1531
  • Implements buffer interface for .NET arrays of primitive types by @lostmsu in #1511
  • Call tp_clear of base unmanaged type by @lostmsu in #1541
  • Allow decoders affect PyObject.As<object>() by @lostmsu in #1546
  • Added workaround for warning in threading module after TestInterrupt by @lostmsu in #1560
  • ClassManager illegally decrefed ClassObject's refcount on shutdown by @lostmsu in #1563
  • Ensure tests, that need running PythonEngine have similar SetUp and TearDown by @lostmsu in #1564
  • Allow decoding instanceless exceptions by @lostmsu in #1544
  • Do not clean tpHandle in ClassBase.tp_clear - it might be used in tp_dealloc by @lostmsu in #1566
  • Mixins for standard collections that implement collections.abc interfaces by @lostmsu in #1543
  • Allow Python to overwrite .NET methods by @lostmsu in #1545
  • Simplify Dispatcher by @lostmsu in #1559
  • Simplify assembly ResolveHandler, and use official assembly name parsing by @lostmsu in #1570
  • Disable implicit conversions that might lose information by @lostmsu in #1568
  • Minor fixup for no autoconversions PR by @lostmsu in #1574
  • Fixed FileLoadException when trying clr.AddReference('/full/path.dll') by @lostmsu in #1573
  • Raise BadPythonDllException instead of confusing TypeLoadException when PythonDLL was not configured properly by @lostmsu in #1577
  • Cleaning up public API by @lostmsu in #1557
  • PyScope/PyModule API cleanup by @lostmsu in #1569
  • name and signature for .NET methods by @lostmsu in #1133
  • When reflecting nested types, ensure their corresponding PyType is allocated by @lostmsu in #1579
  • Safer GetAttr(name, default) by @lostmsu in #1578
  • Expose PyType.Get by @lostmsu in #1581
  • Allow user-created instances of PySequence and PyIterable by @lostmsu in #1580
  • Changed signature of IPyObjectDecoder.CanDecode by @lostmsu in #1583
  • Disabled float and bool implicit conversions by @lostmsu in #1584
  • Remove a deprecated attribute in PropertyObject by @BadSingleton in #1595
  • Python 3.10 by @filmor in #1591
  • Make .NET objects that have __call__ method callable from Python by @lostmsu in #1589
  • Fixed recursive dependency in clr module initialization by @lostmsu in #1602
  • Include README.md into NuGet package by @lostmsu in #1599
  • Remove unused PythonMethodAttribute by @lostmsu in #1609
  • Track Runtime run number by @lostmsu in #1074
  • Use .NET 6.0 LTS and C# 10 by @lostmsu in #1620
  • Update NonCopyableAnalyzer to latest version with our changes upstreamed by @lostmsu in #1624
  • Use new references by @lostmsu in #1603
  • Fixed all warnings except explicit ones by @lostmsu in #1635
  • Match generic and private methods upon runtime reload by @lostmsu in #1637
  • Require newest available clr-loader by @filmor in #1643
  • Fix the PyGILState_STATE type by @filmor in #1645
  • Fix warning regarding undefined module on GC Offset Base by @filmor in #1646
  • Removed ShutdownMode. Now always behaves like original Reload by @lostmsu in #1638
  • When process is exiting, there's no need to save live .NET objects by @lostmsu in #1648
  • Moved Py class into its own file by @lostmsu in #1649
  • Added a regression test for calling base method from nested class by @lostmsu in #1652
  • Fixed accessing partially overriden properties from Python by @lostmsu in #1650
  • Reworked the way .NET objects are constructed from Python by @lostmsu in #1651
  • Improved support for generic method overloading by @lostmsu in #1657
  • Use Delegates to access Py_NoSiteFlag by @lostmsu in #1659
  • Provide __int__ instance method on enum types to support int(Enum.Member) by @lostmsu in #1661
  • Cleanup PyBuffer a bit by @lostmsu in #1662
  • Support for byref parameters when overriding .NET methods from Python by @lostmsu in #1663
  • Performance tests with baseline from Pypi by @filmor in #1667
  • Move code to subdirectories and rename or split up by @filmor in #1665
  • Added ARM64 CI action by @lostmsu in #1669
  • Only run CI on pushes to master and on all pull requests by @filmor in #1670
  • Temporary fix method binder for out parameters by @eirannejad in #1672
  • Added todo note to ensure CLA is signed by @eirannejad in #1674
  • Add tests for exception leaking. by @BadSingleton in #1679
  • We can drop the import hack as we are now using the newer import mechanics by @filmor in #1686
  • Update CHANGELOG.md by @nobbi1991 in #1690
  • Allow dynamic PyObject conversion to IEnumerable by @lostmsu in #1697
  • add GitHub URL for PyPi by @andriyor in #1708
  • Make methods of PyObject inherited from its base .NET classes GIL-safe by @lostmsu in #1711
  • Support for BigInteger (C#) <-> PyInt by @lostmsu in #1710
  • On shutdown from Python release all slot holders by @lostmsu in #1712
  • Clear weakref list when reflected object is destroyed by @lostmsu in #1758
  • Clear weak reference list when an extension type is destroyed by @lostmsu in #1761
  • Fix layout of NativeTypeSpec on 32 bit platforms by @lostmsu in #1765
  • Implement IConvertible on PyObject by @filmor in #1762
  • Ensure that codec tests are run by @filmor in #1763
  • Fix decimal default parameters by @filmor in #1773
  • Work around potential Mono bug, that hangs the runtime when new threads start by @lostmsu in #1779
  • Miscellaneous fixes and cleanups by @filmor in #1760
  • Fix enum codec by @filmor in #1621
  • Disallow runtime shutdown when the Python error indicator is set by @lostmsu in #1780
  • Multiple fixes related to Dictionary.Keys bug by @lostmsu in #1786
  • Drop Python 3.6 support by @filmor in #1795
  • Move to modern setuptools with pyproject.toml by @filmor in #1793
  • Min/MaxSupportedVersion and IsSupportedVersion on PythonEngine by @filmor in #1799
  • Min/MaxSupportedVersion and IsSupportedVersion on PythonEngine by @lostmsu in #1798
  • Add explicit tests for vararg call by @filmor in #1805
  • Fix demo scripts by @filmor in #1802
  • fixed ForbidPythonThreadsAttribute being ignored in certain scenarios by @filmor in #1815
  • Add test for enum int conversion by @filmor in #1811
  • Implement configuring clr from environment by @filmor in #1817
  • Take GIL when checking if error occurred on shutdown by @filmor in #1836
  • Fix (U)IntPtr construction by @filmor in #1861
  • Fix string construction by @filmor in #1862
  • Fix docstring for directly constructed types by @filmor in #1865
  • Fixed a leak in NewReference.Move by @lostmsu in #1873
  • Add XML docs to NuGet by @lostmsu in #1878
  • Mention the need for Initialize and BeginAllowThreads in the README by @lostmsu in #1897
  • Disabled implicit seq to array conversion by @lostmsu in #1902
  • Explicit float and int conversion for builtin types by @filmor in #1904
  • Fill nb_index slot for integer types by @filmor in #1907
  • Fixed use of the process handle after Process instance is garbage collected by @lostmsu in #1940
  • Fixed new line character at the end of informational version by @lostmsu in #1941
  • Enabled test for NoStackOverflowOnSystemType by @lostmsu in #1943
  • Config-less CoreCLR and improved runtime load message by @filmor in #1942
  • Implicit float conversion in function calls by @filmor in #1908
  • Documentation by @filmor in #1863

New Contributors

Full Changelog: v2.5.2...v3.0.0

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy