Skip to content

Releases: jpype-project/jpype

JPype 1.5.0

15 Dec 21:10
Compare
Choose a tag to compare
  • 1.5.0 - 2023-12-15

    • Support for Python 3.12

    • Switched __eq__ and __ne__ operator to use equals 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

27 Oct 03:45
Compare
Choose a tag to compare
  • 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

14 May 14:04
Compare
Choose a tag to compare
  • 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

05 Jun 15:50
Compare
Choose a tag to compare
  • 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

04 Jan 02:05
Compare
Choose a tag to compare

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

30 Nov 05:02
Compare
Choose a tag to compare
  • 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 is org.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

23 Oct 16:58
Compare
Choose a tag to compare
  • 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

21 Oct 15:49
Compare
Choose a tag to compare

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

20 Oct 18:26
Compare
Choose a tag to compare

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

31 Jul 13:42
Compare
Choose a tag to compare
  • 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!