BridJ 0.6.2 released: many fixes, OSGi, dependent libraries…

BridJ (BSD-licensed) is an innovative native bindings library that lets Java programmers use native libraries (written in C, C++, ObjectiveC and more) in a very natural way (inspired by the great JNA, with better performance, C++ and generics added).

Here’s a summary of the changes between version 0.6.1 and this bugfix-release version 0.6.2 (see full change log here) :

  • Fixed serious crashes on Win64 in assembler optimizations
  • Fixed BridJ.protectFromGC !
  • Fixed raw assembler optimization for floats & doubles, finally! (+ updated Win binaries)
  • Fixed handling of classloaders in some use-cases (issue #283)
  • Fixed Platform.open(File) (issue #306)
  • Fixed Pointer.copyTo(dest, elementCount) (issue #317)
  • Fixed alignment of struct array fields (issue #319)
  • Fixed alignment of double fields on Linux 32 bits (issue #320)
  • Fixed dlopen log for non existing absolute library paths
  • Added experimental Linux/arm support (issue #327)
  • Added @Library.dependencies + test library
  • Added BridJ.getNativeLibraryName back
  • Added ComplexDouble struct for C99′s `_Complex double` type.
  • Added GCC shortcut case for demangling of C++ constructors
  • Added Pointer.getIntAtIndex(long) / .setIntAtIndex(long, int) (and with all primitive variants)
  • Added quiet mode (BRIDJ_QUIET=1 / bridj.quiet=true) (issue #328)
  • Added parsing of Mach-O compressed symbols tries (LC_DYLD_INFO command) to dyncall (issue #311)
  • Added assembler optimizations for functions with up to 16 arguments on Win64 !
  • Added Pointer.withoutValidityInformation() (yields faster, unsafe pointer)
  • Added BridJ.subclassWithSynchronizedNativeMethods(Class) to create a subclass where all native methods are overridden
  • Added Pointer.getIntAtIndex(long) / .setIntAtIndex(long, int) (and with all primitive variants)
  • Added naive OSGi support to the main JAR.
  • Rationalized Java logs (issue #328)
  • Changed library extraction mechanism to allow extraction of dependencies (see @Library.dependencies); removed DeleteOldBinaries option
  • Special aliases for “c” and “m” libraries on windows (-> mscvrt)
  • Speedup assembler optimization on win64 (movsb -> movsq)
  • Removed ios-package (binaries for iOS/arm)

Special thanks to the users, contributors and bug reporters that helped getting this version out !

You can contribute to the project by reporting bugs here and joining the NativeLibs4Java Community.

Wait no longer : download and use BridJ now !

This entry was posted in Uncategorized. Bookmark the permalink.