All Versions
41
Latest Version
Avg Release Cycle
91 days
Latest Release
803 days ago
Changelog History
Page 3
Changelog History
Page 3
-
v1.2.7 Changes
November 29, 2016- Fix
Loader
errors that could occur due to recent changes
- Fix
-
v1.2.6 Changes
November 28, 2016- Improve
Loader
handling of duplicate libraries found in different JAR files using symbolic links (useful for MKL, etc) - Prevent
Loader
from overwriting previously extracted and renamed libraries (issue deeplearning4j/nd4j#1460) - Allow users to define
NO_JNI_DETACH_THREAD
to prevent callbacks from reinitializing threads (issue #143)
- Improve
-
v1.2.5 Changes
November 13, 2016- Add support for
decltype()
declarations to theParser
(issue #135) - Fix
Generator
when aFunctionPointer
contains methods that start with "get" or "put" (issue #137) - Enhance
Parser
to let users skip the default values of arguments, as well as classes when one base class is skipped - Fix
Parser
not properly mapping the type oflong
anonymous enums - Take into account
const
on function parameters when looking up inInfoMap
, and fix some incorrectly translated macros into variables - Add to
InfoMap.defaults
more names that are reserved in Java, but not in C++ - Add via
@ByPtrRef
support for function pointers passed by reference, as well as support forInfo.javaText
withtypedef
- Make sure
Parser
exhausts all combinations of method parameter types even with duplicates (issue bytedeco/javacv#518) - Make
Loader
cache libraries (in~/.javacpp/cache/
by default) instead of using temporary files (pull #120) - Have
Parser
annotate theallocate()
functions and not the actual constructors (issue bytedeco/javacpp-presets#297) - Fix
Parser
handling ofclass
,struct
, orunion
types with variables declared in the same statement - Add missing
platform.link
topsapi
required by some versions of Visual Studio (issue bytedeco/javacpp-presets#298) - Make sure default values placed in
nullValue
by theParser
have the right type (issue bytedeco/javacv#518) - Accelerate call to
Pointer.physicalBytes()
on Linux (issue #133) - Fix
Parser
incorrectly skipping over some template function declarations - Allow C++ types to be prefixed by
class
,struct
, orunion
to work around name clashes (pull bytedeco/javacpp-presets#266) - Properly expand the special predefined
__COUNTER__
macro (pull bytedeco/javacpp-presets#266) - Create all missing directories in the paths to the source files created by
Generator
- Add support for
-
v1.2.4 Changes
September 16, 2016- Insure
Parser
properly ignores theauto
,mutable
,register
,thread_local
, andvolatile
C++ keywords for storage classes - Fix
Generator
andParser
for types likestd::unordered_map<std::string,std::pair<int,int> >
(pull bytedeco/javacpp-presets#266) - Add
std::forward_list
,std::priority_queue
,std::unordered_map
, andstd::unordered_set
to the list of "basic/containers" inInfoMap
- Work around
linux-armhf
not being properly detected with OpenJDK (issue #105) - Fix
Parser
not accepting namespace aliases with::
tokens in them (issue bytedeco/javacpp-presets#265) - Add "org.bytedeco.javacpp.maxphysicalbytes" system property to force calls to
System.gc()
based onPointer.physicalBytes()
- Allow strings ending with "t", "g", "m", etc to specify the number of bytes in system properties (issue #125)
- Add
Info.linePatterns
to limit the lines from header files that theParser
has to process - Introduce "platform.compiler.hardfpu" option inside
android-arm.properties
to targetarmeabi-v7a-hard
- Add
UniquePtrAdapter
and corresponding@UniquePtr
annotation to supportunique_ptr
containers (pull bytedeco/javacpp-presets#266) - Fix
Parser
not expectingfriend class
declarations that start with::
(pull #122) - Synchronize memory allocation in
Pointer
to avoidOutOfMemoryError
when low on memory - Make it clear that
Indexable.createIndexer()
can throw aNullPointerException
(issue bytedeco/javacv#437) - Escape quotes when parsing default value for the
nullValue
of@ByRef
or@ByVal
(pull #119) - Let
Parser
accept identifiers in addition to integer literals for bit fields (issue #118) - Fix
Loader.load()
not renaming a library when previously loaded under a different name
- Insure
-
v1.2.3 Changes
August 01, 2016- Add support for data member pointers as pseudo-
FunctionPointer
(issue #114) - Change the packaging type to
jar
sincemaven-plugin
causes issues with sbt and Ivy (issue #113) - Include new
platform.compiler.debug
options inside the default properties file (pull #90) - Always use the
platform.compiler.default
options unless@Platform(compiler="!default", ...)
is specified - Move optimization options from
platform.compiler.output
toplatform.compiler.default
, allowing users to override - Create all missing directories in the path to the target file of
Parser
- Parse properly custom
enum
types, found after the ':' token in C++11 - Output compiled libraries to user specified class path by default for input classes inside JAR files, etc
- Add
HalfIndexer
to accessshort
arrays as half-precision floating point numbers
- Add support for data member pointers as pseudo-
-
v1.2.2 Changes
July 08, 2016- Prevent creating unnecessary garbage when using
Indexer
on simple arrays with a stride of 1 (issue deeplearning4j/nd4j#1063) - Add "org.bytedeco.javacpp.maxretries" system property, the number times to call
System.gc()
before giving up (defaults to 10) - Deallocate native memory in a dedicated thread to reduce lock contention (issue #103)
- Fix Javadoc links for externally referenced classes
- Prevent Android system libraries from getting copied or extracted
- Insert in
Indexer
anindexable
field optionally set by the user for convenience - Fix potential
ParserException
on comments found after annotations before function declarations - Fix
IndexerTest
potentially failing withOutOfMemoryError
(issue bytedeco/javacpp-presets#234) - Preload libraries to work around some cases when they refuse to load once renamed (issue deeplearning4j/libnd4j#235)
- Fix compilation error on some
linux-ppc64le
platforms (issue deeplearning4j/libnd4j#232) - Make sure
Generator
definesJavaCPP_getStringBytes()
to handle exception messages when using callbacks
- Prevent creating unnecessary garbage when using
-
v1.2.1 Changes
May 26, 2016- Fix
Loader
crashing on Android (issue bytedeco/javacv#412) - Fix
NullPointerException
on "generic" platforms - Throw
OutOfMemoryError
onallocateArray()
forPointer
of primitive types withsize > 0 && address == 0
(issue deeplearning4j/nd4j#960) - Add the ability the specify, after a
#
character, the output filename of libraries extracted byLoader.load()
- Consider
FunctionPointer
annotated with empty@Namespace
as non-member function pointers (issue #99)
- Fix
-
v1.2 Changes
May 15, 2016- Fix
NullPointerException
inBuilder
on invalidjava.home
system property or inaccessible directories - Add parameters to
Loader.load()
offering more flexibility over the platform properties and library paths - Treat all
String
withCharset.defaultCharset()
(or defineMODIFIED_UTF8_STRING
for old behavior) (issue #70) - Fix
NullPointerException
inParser
on variadic templates (issue #81) - Fix
Loader.load()
error when called right afterBuilder.build()
within the same process - Lower Maven prerequisite in the
pom.xml
file to 3.0 (issue #93) - Use
Info.cppTypes
for allParser
type substitutions, in addition to macros and templates (issue bytedeco/javacpp-presets#192) - Make
Parser
take into account Java keywords not reserved in C++, casting issues withint64_t
, andconst
value types in basic containers - Let users define
NATIVE_ALLOCATOR
andNATIVE_DEALLOCATOR
macros to overload globalnew
anddelete
operators - Map
jint
toint
andjlong
tolong long
on Windows as well as all platforms with GCC (or Clang) - Fix corner cases when checking for the platform in
Generator
andParser
- Link libraries with "-z noexecstack" on Linux as recommended by HotSpot (pull #90)
- Set the internal DT_SONAME field in libraries created for Android (issue bytedeco/javacpp-presets#188)
- Add "org.bytedeco.javacpp.maxbytes" system property, forcing a call to
System.gc()
when this amount of memory tracked with deallocators is reached - Let
Parser
pick upInfo.annotations
in the case of function pointers as well - Add
@Convention(extern=...)
value to haveGenerator
produceFunctionPointer
with other language linkage than "C" - Enhance the
indexer
package withlong
indexing, initially via thesun.misc.Unsafe
, for now - Lengthen the
position
,limit
, andcapacity
fields ofPointer
usinglong
- Prevent creating text relocations for shared libraries on Android, which are rejected by recent versions of the SDK
- Use the
outputDirectory
as the compiler's working directory (pull #89) - Comment with first dimension of multidimensional array inside
@Cast
(pull #87) - Remove
throws Exception
fromPointer.close()
since destructors do not typically throw exceptions (pull #86) - Add
-nodelete
flag to keep generated C++ files after compilation (pull #85) - Annotate functions originating from
cinclude
with@NoException
(pull #84) - Call
JNI_ABORT
on release ofconst
arrays (pull #83) - Add support for C++11
default
anddelete
on function declarations (issue #80) - Add support for C++11 typed
enum
, with or without enumerator list (issue #78) - Add missing space for
const
types when normalizing template arguments inParser
(issue bytedeco/javacpp-presets#165) - Make
Builder
fail onClassNotFoundException
orNoClassDefFoundError
instead of logging warnings - Allow
Builder
to generate native libraries with empty@Platform
annotation even without user definednative
methods - Enhance
Parser
to support a bit better&&
tokens and C++11 rvalue references (issue bytedeco/javacpp-presets#160) - Add properties for the
linux-armhf
,linux-ppc64
, andlinux-ppc64le
platforms, and pick upmacosx
whenos.name
isdarwin
- Fix
NullPointerException
inParser
on unexpected forms of function pointers (issue #70) - Make sure
Generator
produces calls tosizeof()
andoffsetof()
for allPointer
classes with allocators - Let
Parser
use adapters in the case ofFunctionPointer
as well (issue bytedeco/javacpp-presets#145) - Prepend "javacpp." to all properties associated with Maven in
BuildMojo
to avoid name clashes - Let users define the
GENERIC_EXCEPTION_CLASS
macro (default ofstd::exception
) to indicate the base exception thrown by native methods - Split type names at
::
delimiters before mapping them against templates inParser
- Fix swallowed
InterruptedException
(issue bytedeco/javacv#315) - Adjust a few things in
Generator
preventing@Virtual
from working properly in some cases (issue bytedeco/javacpp-presets#143) - Fix
TokenIndexer
inserting an invalid token while expanding macros ending with a backslash (issue #63) - Make
Parser
takeInfo.skip
into account forenum
declarations as well - Improve the performance of
BytePointer.getString()
by usingstrlen()
- Prevent
Generator
from initializing classes when preloading them, which can cause problems (issue bytedeco/javacpp-presets#126) - Add
Info.flatten
to duplicate class declarations into their subclasses, useful when a subclass pointer cannot be used for the base class as well - Prevent
Loader
from extracting libraries more than once, which can cause problems (issue bytedeco/javacpp-presets#126) - Make
Indexer implements AutoCloseable
to let us try-with-resources - Add missing calls to
close()
forInputStream
andOutputStream
inLoader
(issue #53) - Remove
Piper
class no longer needed with Java SE 7 - Let
Parser
place appropriateInfo.javaText()
provided by users in the case of destructors as well - Fix the
Parser
skipping over some declarations by mistake and producing invalid comments for macros - To let users specify
...
varargs asInfo.pointerTypes()
, have theParser
replace them with array[]
when not found on the last parameter - Enhance basic support for containers of the style
std::vector<std::pair< ... > >
with user-friendly array-based setter methods - Fix
Generator
not passing function objects even when annotatingFunctionPointer
parameters with@ByVal
or@ByRef
- Map
bool*
toboolean[]
tentatively inParser
sincesizeof(bool) == sizeof(jboolean)
on most platforms - Allow
Parser
to generate@Cast()
annotations and overloadedput()
methods in basic containers too - Move list of basic containers and types to
Info.cppTypes
of the "basic/containers" and "basic/types"InfoMap
entries, letting users change them at build time - Fix some
Parser
issues withtypedef
and forward declarations insideclass
definitions - Insure
Parser
maps 64-bit values in C++enum
tolong
variables (issue #48) - Fix
Generator
trying to cast improperly objects on return from@Virtual
functions - Make
Parser
takeconstexpr
,nullptr
, andnamespace
aliases into account, and fix a couple of preprocessing issues withTokenIndexer
- Fix primitive arrays and NIO buffers not getting updated on return when used as arguments with adapters (issue bytedeco/javacpp-presets#109)
- Enhance a bit the conversion from Doxygen-style documentation comments to Javadoc-style
- Remove class check in allocators, which prevented peer classes from being extended in Java, instead relying on
super((Pointer)null)
in child peer classes, and remove confusing and now unnecessary empty constructors
- Fix
-
v1.1 Changes
October 25, 2015- Make
Generator
use actual C++ operators for commonly overloaded ones instead of callingoperator??()
functions, for better portability - Fix potential race condition when deallocating
Pointer
objects from multiple threads - Add logging to
Loader.loadLibrary()
to help diagnose loading problems (issue #41) - Provide new
@Platform(pragma=...)
value to haveGenerator
output#pragma
directives - Upgrade all Maven dependencies and plugins to latest versions, thus bumping minimum requirements to Maven 3.0
- Add new "org.bytedeco.javacpp.cachedir" system property to specify where to extract and leave native libraries to share across multiple JVM instances
- Provide
@Virtual(true)
to specify pure virtual functions and preventGenerator
from making undefined calls - Update properties for Android to detect undefined symbols at compile time, instead of getting errors only at runtime
- Log when
Pointer.deallocator
gets registered, garbage collected, or deallocated manually, ifLogger.isDebugEnabled()
(redirectable to SLF4J) - Make
Pointer implements AutoCloseable
to let us try-with-resources, thus bumping minimum requirements to Java SE 7 and Android 4.0 - Introduce the concept of "owner address" to integrate
Pointer
transparently withstd::shared_ptr
, etc (Thanks to Cyprien Noel for the idea!) - Add new "cpp11" option for the
@Platform(compiler=...)
value to build against the C++11 standard - Fix
Parser
support for theinterface
keyword of the Microsoft C/C++ Compiler - Let
Parser
pick up names fromInfo.pointerTypes
in the case of function pointers as well - Add new "org.bytedeco.javacpp.nopointergc" system property to prevent
Pointer
from registering deallocators with the garbage collector - Add
@Properties(names=...)
value to specify a list of default platform names that can be inherited by other classes - Fix a couple of
Parser
issues on complex template types (issue #37) - Take into account
Buffer.arrayOffset()
when creating aPointer
from a buffer backed by an array (issue bytedeco/javacv#190) - Fix some incorrectly translated comments in
Parser
(issue #32) - Add
Parser
support for thestd::bitset
"container", and a bug involving simple types and skipped identifiers - Properly parse overloaded
new
anddelete
operators,friend
declarations, and default constructors with an explicitvoid
parameter (issue #31) - Fix a couple of potential
NullPointerException
inParser
(issue #30) - Have the
Parser
wrap theiterator
of some standard C++ containers when useful - Use Clang as the default compiler for Mac OS X and iOS (via RoboVM)
- Adjust
BytePointer
,CharPointer
,IntPointer
, andStringAdapter
to work with data strings that are not null-terminated (issue #24) - Forbid
Parser
from producingabstract
classes, preventing C++ factory methods and such from working properly (issue #25) - Fix crash when trying to create objects from abstract classes, to let the exception be thrown on return (issue #26)
- Switch to GCC 4.9 by default on Android, probably dropping support for Android 2.2, because GCC 4.6 has been dropped from the NDK since r10e
- Insure
Generator
casts properly tojweak
when callingDeleteWeakGlobalRef()
(issue #23)
- Make
-
v1.0 Changes
July 11, 2015- Add
-undefined dynamic_lookup
option to Mac OS X compiler, making its native linker behave a bit better, plus search for libraries suffixed with ".so" too - Add missing
@Platform(frameworkpath=...)
value and corresponding property to set custom framework paths for the linker - Add
Parser
support for theinterface
keyword of the Microsoft C/C++ Compiler - Fix
Generator
performance issue on classes with a lot of methods (issue bytedeco/javacpp-presets#36) - Offer the Apache License, Version 2.0, as a new choice of license, in addition to the GPLv2 with Classpath exception
- Fix
NullPointerException
when trying to process aninterface
class - Fix
Parser
errors on unnamednamespace
blocks, preprocessor directives with comments, and empty macros - Introduce a
nullValue
to@ByRef
and@ByVal
annotations to let us specify what to do when passednull
- Add properties for
android-arm64
,android-x86_64
, andlinux-arm64
platforms - Add slow but generic
Indexer.putDouble()
to complement existingIndexer.getDouble()
(useful for testing) - Fix and enhance in various ways the support of
Parser
andGenerator
for function pointers, virtual functions, and abstract classes - Improve
Parser
check forconst
references and pointers required to output appropriate@Const
annotation - Add
Info.purify
to force theParser
in producing abstract classes - Let
StringAdapter
(via the@StdString
annotation) supportstd::string*
, that is to say, pointers to strings - Fix
Tokenizer
failing on some character and string literals - Fix
Parser
errors caused by constructors intypedef struct
constructs, included nested ones, and skip over pointer names too (issue bytedeco/javacpp-presets#62) - Generalize
Info.virtualize
to let non-pure virtual functions get annotated with@Virtual native
- Make
VectorAdapter
work even with elements that have no default constructor - Add
Parser
support forstd::pair
as a sort of zero-dimensional container type - Fix
Parser
crash on empty comments (issue #14)
- Add