Releases: jpype-project/jpype
JPype 1.5.0
-
1.5.0 - 2023-12-15
-
Support for Python 3.12
-
Switched
__eq__
and__ne__
operator to useequals
rather than
compareTo
for comparable objects to avoid exception when comparing
object of different types. -
Fixed segmentation fault when comparing Java Comparable to primitives.
-
Java exceptions that occur in inequality comparisons now map to Python
TypeError. -
Fixed crash when calling subscript on JArray.
-
Fixed direct byte buffers not reporting nbytes correctly when cast to
memoryview. -
Expand the defintion for Functional interface to include classes without
FunctionInterface annotation. -
Add additional matching level for derived types to resolve ambiguities when
a derived type is used in place of base class when determining the method
overload. This will resolve some previous ambiguities between methods.
-
JPype 1.4.1
-
Fixed issue with startJVM changing locale settings.
-
Changes to support Python 3.11
-
Fix truncation of strings on null when using convert strings.
-
Replaced distutil with packaging
JPype 1.4.0
-
Support for all different buffer type conversions.
-
Improved buffer transfers to numpy as guaranteed to match Java types.
However, exact dtype for conversions is os/numpy version dependent. -
Support for byte order channels on buffer transfers.
-
Byte size for buffers now fixed to Java definitions.
-
When directly accessing Java arrays using memory view, Python requires a
cast from buffers. Required because Python does not support memory view
alterations on non-native sizes.
-
-
Fix crash when comparing JChar.
- Order handling for numerical operations with JChar fixed.
-
Improved matching for Java functors based on parameter count.
-
Dropped support for Python 3.5 and 3.6
-
dbapi2 handles drivers that don't support autocommit.
-
Fixed issue when Java classes with dunder methods such as
__del__
caused conflicts in Python type system. Java method which match dunder
patterns are longer translated to Python. -
Fix issue with numpy arrays with no dimensions resulting in crash.
-
Support for user defined conversions for java.lang.Class and array types.
-
Fixed issue with ssize_t on Windows for Python 3.10.
JPype 1.3.0
-
Fixes for memory issues found when upgrading to Python 3.10 beta.
-
Add additional diagnositics for importing of non-public class.
-
Fixed issue with classes with unsatified dependencies leading to a crash
on windows. -
Fixed a bug with arrays created using the short cut. The wrong type
was being returned.
JPype 1.2.1
This is a bug release to correct defects found in the previous release. This version should add no additional functionality, though certain bug fixes will correct previous behaviors or add files which were incorrectly excluded due to packaging issues.
-
JPype scans jar files and rebuilding missing directories to allow imports from stripped and obfuscated jar files. Previously certain build patterns for jars excluded directories which prevented the import system from functioning properly. This change should increase the number of jar files which can be imported successfully. This was the intended behavior for imports, but certain defects in the process prevented proper function.
-
Missing stub files added to packaging. These were added in the last release, but the packaging system incorrectly excluded them from the build.
-
Python 3.9 issues are resolved on Windows. A change in Python 3.9 made is so that the GIL is not held during library loading, thus static variables created are not valid. These variables have been moved to module initialization.
-
aarch64 has been added to the build patterns for publication in this and future releases.
JPype 1.2.0
-
Added builds for Python 3.9. Python 3.9 on Windows is currently failing
due to issue in Python. -
Fixed bug when importing from multi-release jars. The directory was
being truncated to only those classes in the overlay. -
addClassPath can add jar files after the JVM is started. The default
loader for JPype class isorg.jpype.classloader.DynamicClassLoader
. -
Build support of z/OS added.
-
Bug causing ambiguity between primitives and variadic arguments in method
resolution was corrected. -
Boolean was inadvertently left out of method resolution.
boolean
now properly matched with boxed types. -
Support for PyInstaller was added.
JPype 1.1.2
-
Linux binaries are now stripped for size.
-
Add importlib.util to address instability in Python importlib boot process.
Certain versions of Python such as 3.9 appear to not properly load this
module resulting in unexpected errors during startJVM.
JPype 1.1.1
This pull release corrects an issue in the build system resulting in incomplete wheels on linux. No other changes from 1.1.0.
JPype 1.1.0
linux distribution were incomplete. Please use 1.1.1 release.
-
Correct bug resulting in reporting ambiguous overloads when resolving
methods with variadic arguments. -
Ctrl+C behavior is switchable with interrupt flag to startJVM.
If True, process will halt on Ctrl-C. If False, the process
will transfer control to Python rather than halting. If
not specified JPype will assume false if Python is started as an
interactive shell. -
Fixed crash with Ctrl+C when multiple exceptions were generated.
-
Removed extraneous exception when calling Ctrl+C before Java code is
executed for methods and fields. -
Fixed memory leak with string cache.
-
Fixed crash when manually creating wrappers for anonymous classes.
-
Fixed reference count problem in stackframes used for exceptions.
-
Errors report
*static*
when the matching with a static method
so that it is clear when a member method was called statically. -
java.lang.String slices function like Python string slice.
-
Java packages now operate as normal Python modules. Removed restrictions
regarding setattr. All package instances for the same package name are
shared so that functionality added to one instance is shared wiht all
instances.
JPype 1.0.2
-
The wrapper for Throwable was getting the wrapper for Object rather than
the expected wrapper resulting in odd conversions from Python classes. -
Typos within the import system resulting in "jname" not found corrected.
-
^C propagates to a KeyboardInterrupt properly.
-
Added cache to the method dispatch to bypass resolution of overloads.
This reduces the cost of method resolution significantly especially if
the same overload is hit repeatedly such as during loop operations. -
Improved speed on transfer of lists, tuples, buffers to arrays of Java
primitives by a factor of 4 to 100 depending on the data type. The
conversion uses optimized path for memory buffers, rather than the
Sequence API. When a Python buffer is encountered only the
first element is checked for conversion as Python buffers are homogeneous. -
Corrected symbol problem with Python 3.5.3. PySlice_Unpack was introduced
in a later patch release and should not have been used. -
shutdown The behavior log entry for changes on shutdown were lost in
the 1.0 release. JPype now calls the JVM shutdown routine which tries to
gracefully exit when shutdown is called. This results in several changes
in behavior. Non daemon threads can now hold open the JVM until they have
completed. Proxy calls will hold the shutdown until the call is completed
but will receive an interrupt message. Files now close properly and will
flush if the threads properly handle the exception. Resource clean up
hooks and finalizers are executed. AtExit hooks in the JVM are called as
spawned threads. Automatic attachment of threads by use of the JVM from
Python are done as daemon but can be reattached as user threads on demand.
Buggy code that fails to properly handle thread clean up will likely hang
on shutdown. Additional documentation is located in the user guide. -
A bug was reported with numpy.linalg.inv resulting in crashes. This was
traced to an interaction with threading between the JVM and some compilations
of numpy. The workaround appears to be calling numpy.linalg.inv prior to
starting the JVM.
special note To all our friends on opennet.ru, please blame not the translator. Translating my mangled English diction and word order is torture enough. Dyslexics of the world untie!