Releases: bytedeco/javacpp
Releases · bytedeco/javacpp
JavaCPP 1.5.12
JavaCPP 1.5.11
November 16, 2024 version 1.5.11
- Fix
Generatorflakiness caused by calls toClass.getDeclaredMethods()(pull #784) - Add minimal mappings for
std::chronofrom C++11 (pull #766) - Let
Parserannotate Java constructors with@Deprecatedwhen appropriate (pull #757) - Add to
InfoMap.defaultsmore names that are reserved in Java, but not in C++ (pull #757) - Bundle
libompfrom Visual Studio to fix presets using OpenMP on Windows (pull #755) - Fix inconsistencies when using
@Platform(inherit=..., library=...)together (pull #747) - Let
Parsersupport templates with unnamed type parameters (pull #742) - Prevent
Parserfrom producing duplicate declarations for basic containers (pull #741)
JavaCPP 1.5.10
January 29, 2024 version 1.5.10
- Move native
Loadermethods toHelperclass to avoid deadlocks (issue #737) - Fix
Parserfailing to pick upInfofor constructors with template arguments (pull #739) - Fix
MoveAdapterandUniquePtrAdaptercausing double free on function calls (pull #738) - Fix
Parserhandling oftemplatespecialization and theirfrienddeclarations (pull #733) - Improve
Parsercapabilities foroperatorand function templates (pull #732) - Fix
Parserfailing on nested initializer lists and on attributes found insideenumdeclarations - Fix
Parserfor basic containers likestd::optional<std::pair<int,int> >(issue #718) - Add support for
std::basic_stringbasic container (issue bytedeco/javacpp-presets#1311) - Enhance
Parserby adding downcast constructors for polymorphic classes (pull #700) - Let
Generatorpick up@Nameannotations onallocate()as well (pull #700) - Fix
Parserfailing to place annotations on default constructors (pull #699) - Let
Parseroutputreset()methods for basic containers likestd::optional(pull #696) - Let
Parserdefinefront()andback()for one-dimensional basic containers (pull #695) - Let
Parsermap iterators of basic containers systematically (pull #694) - Fix
Parserfor function parameters contained in template arguments (pull #693) - Fix
Parseron function pointer declarations starting withtypedef struct(pull bytedeco/javacpp-presets#1361)
JavaCPP 1.5.9
June 6, 2023 version 1.5.9
- Fix
Loader.extractResource()for nested JAR files from Spring Boot (pull #685) - Have
Parserdesugar...varargs to array[]for return types as well (pull #682) - Fix
Parserfailing on somefriendfunctions foroperatoroverloading (pull #681) - Fix
Parserincorrectly castingconstpointers to template arguments of pointer types (pull #677) - Fix
ParserwithInfo.enumeratefailing to translateenumvalues based on otherenumvalues - Fix
Parserprematurely expanding macros defined inclass,structorunion(issue #674) - Add
Info.upcastto support class hierarchies with virtual inheritance (pull #671) - Pick up
@Adapter,@SharedPtr, etc annotations onallocate()as well (pull #668) - Provide
@Virtual(subclasses=false)to preventGeneratorfrom subclassing subclasses (pull #660) - Fix
Loader.getPlatform()detection forlinux-armhfwith Temurin JDK (issue bytedeco/javacv#2001) - Fix
ParserignoringInfo.skipfor enumerators that do not get translated (issue bytedeco/javacpp-presets#1315) - Fix
Parsererror on C++17 style namespace declarations containing::separators (issue #595) - Fix
ParserobservingInfo.virtualizefor non-virtual functions (pull #658) - Use regex in
Parserto match more robustly templates and namespaces (pull #657) - Fix
Builderdefault output path for class names with the same length (pull #654) - Add
Info.friendlyto haveParsermap somefriendfunctions to Java methods (pull #649) - Add
Loader.loadProperties(boolean forceReload)to reset platform properties (issue deepjavalibrary/djl#2318) - Prevent
TokenIndexerfrom recursively expanding macros - Fix
Generatorpassing emptyStringobjects on callback for arguments using adapters - Fix
Parserfailure onenumenumerators generated using the concat##operator
JavaCPP 1.5.8
November 2, 2022 version 1.5.8
- Add
static long Pointer.getDirectBufferAddress(Buffer)method for convenience (pull #629) - Fix
UniquePtrAdapterincorrectly deallocating pointers on callbacks (issue #613) - Fix
Generatorincorrectly casting@ByValor@ByRefannotatedFunctionPointerarguments (issue bytedeco/javacpp-presets#1244) - Fix
Generatorcompiler errors forFunctionPointerwith@UniquePtrarguments (issue #613) - Fix
Generatorcompiler errors on Mac for Clang without Objective-C support (pull #610) - Prevent
Parserfrom outputting cast methods for base classes that areInfo.skip(pull #607) - Ensure
GeneratorandParserprocess header files fromcincludebeforeinclude(issue #580) - Remove
sun.misc.Unsafeconfig incompatible/unneeded with GraalVM Native Image 22.x (issue bytedeco/sample-projects#63) - Define default
SHARED_PTR_NAMESPACE,UNIQUE_PTR_NAMESPACE,OPTIONAL_NAMESPACEtostdon supported compilers (issue #577) - Let
Generatortreatlongarguments and return values@ByValor@ByRefwith@Cast("...*")(issue #576) - Add
BytePointer.getUnsigned()andputUnsigned()methods for convenience (pull #574) - Let
Parserconsideralignasas an explicit attribute to be ignored by default (issue bytedeco/javacpp-presets#1168) - Add "org.bytedeco.javacpp.findLibraries" system property to disable search for libraries (pull #565)
- Fix
Generatorcausing memory leaks forStringparameters on callback (issue bytedeco/javacpp-presets#1141) - Add
Loader.new/access/deleteGlobalRef()methods to store JNIObjectreferences inPointer(issue bytedeco/javacpp-presets#1141) - Make
Loader.findLibrary()also search in "sun.boot.library.path" for jlink (pull #565) - Add
__int8,__int16,__int32, and__int64toInfoMapas "basic/types" to support combinations allowed by Visual Studio - Add "org.bytedeco.javacpp.cacheLibraries" system property to disable cache for libraries (pull bytedeco/gradle-javacpp#21)
- Add public getters for the address fields of
Pointer.NativeDeallocator(discussion bytedeco/javacpp-presets#1160) - Add support for
std::functionbasic container instances with correspondingFunctionPointer(issue bytedeco/javacpp-presets#1051) - Fix
Builderparsing of command line options for platform properties (issue #564) - Use thread local in
Generatorto detach automatically native threads on exit for Windows as well (pull #562) - Add compiler options for C++14 and C++17 to platform properties files for Visual Studio
- Fix
Parserincorrectly shortening type names for nested class template instances - Make
Parseroutputboolean has_value()methods for basic containers likestd::optional - Add
OptionalAdapterand corresponding@Optionalannotation for containers likestd::optional - Switch to
AttachCurrentThreadAsDaemon()when attaching native threads on callback (pull #561) - Add to
InfoMapdefault pointer and value types for integer types instd::namespace - Fix Android platform properties for NDK r23b
JavaCPP 1.5.7
February 11, 2022 version 1.5.7
- Add
Loader.clearCacheDir()along with newClearMojoand-clearcommand line option - Speed up
Loaderon Windows when there are no symbolic links or library versions (pull #512) - Enhance
Pointer.physicalBytes()by excluding shared pages from memory-mapped files, etc (issue #468) - Fix
Parsernot correctly encoding files of top-level classes produced with@Properties(target=..., global=...) - Add
Pointer.interruptDeallocatorThread()method to make JavaCPP classes eligible for GC (discussion bytedeco/javacpp-presets#1115) - Let
Parseroutput the content ofInfo.javaTextin the case ofFunctionPointeras well - Fix
TokenIndexerfailure on macros using the concat##operator with empty arguments (issue #525) - Let
Parsersupport arrays of anonymousstructorunioncontaining another one (discussion #528) - Prevent
Parserfrom outputting duplicatePointerconstructors for basic containers - Fix
Generatorcompiler errors on callback functions returning objects without default constructors - Ensure
Buildercopies resources only from the first directories found in the paths - Add
Loader.getCanonicalPath()to work around bugs inFile.getCanonicalPath()on Windows (pull #519) - Add
FunctionPointerand@Virtualmethods missing from config files required by GraalVM Native Image - Let
Tokenizerconvert characters using ASCII escape sequences'\x...'to normal hexadecimal values0x... - Fix
Parserincorrectly mapping default function arguments containing multiple template arguments - Fix
Parserfailures on variadic templates callingsizeof...()and on variables initialized from template values - Prevent
Parserfrom failing on nonexistent header files contained in@Platform(exclude=...) - Add
classOrPackageNamesparameter toCacheMojo(pull #510)
JavaCPP 1.5.6
August 2, 2021 version 1.5.6
- Add missing export to
module-info.javafile for presets package (pull #508) - Add
@NoException(true)value to support overridingvirtual noexceptfunctions - Bundle more DLLs from UCRT to fix the systems presets on Windows
- Fix
Pointer.sizeof()method for subclasses of subclasses for primitive types (issue bytedeco/javacpp-presets#1064) - Throw more accurate
UnsatisfiedLinkErrorwhenLoader.load()fails to find JNI libraries - Let
ParsercheckInfo.skipDefaultsalso for types to ignore default constructors (issue #493) - Fix
Parserfailure onenumdeclarations without enumerators - Let
Generatoruse the third element of@Cast(value)on return values passed to adapters (issue tensorflow/java#345) - Prevent
Generatorfrom swallowing exceptions caught onBuffer.array()(pull #504) - Add
enumclasses as well as resources missing from config files required by GraalVM Native Image - Let
Parserannotate&¶meters with new@ByRef(true)value used byGeneratorto callstd::move() - Fix
Parseroverlooking anonymousclass,structorunionwith comments after}(issue #501) - Add
Info.beanifyto haveParsergenerate JavaBeans-style getters and setters (pull #495) - Allow
Parserto useInfo.javaNamesfor function names containing parameters as well (issue #492) - Fix
Parserproducing incorrect calls to function templates with non-type parameters (issue #491) - Add missing
presets/package-info.javarequired for OSGi and add profile for M2Eclipse (pull #490) - Remove unnecessary mutex lock for pthreads on callbacks in
Generator(pull #489) - Fix
@AsUtf16handling for setter methods paired with getters inGenerator(pull #488) - Allow defining
NO_JNI_DETACH_THREADto avoid overhead from pthreads on callbacks (issue #486) - Pick up
@Allocator,@CriticalRegion,@NoExceptioninGeneratorfrom@Properties(inherit=classes)as well (issue #484) - Add support for
Deleterof pointer types toUniquePtrAdapter - Add
@Platform(pattern=...)annotation value to allow matching with regular expressions as well - Allow
Parserto consider function pointers declared withusingbut without indirections - Let
Parsermap to annotations whole expressions starting with the__attribute__keyword - Fix
Parsersometimes failing to create template instances with default arguments (issue #478) - Enhance
Parserto handletypedefcorrectly in the case ofenumas well (issue #477) - Upon
Pointer.getPointer(Class<P>)scaleposition,limit, andcapacitywithsizeof()(pull #476) - Fix
Parserincorrectly translating non-documentation comments as part of documentation comments (issue #475) - Set
Pointer.maxPhysicalBytesto4 * Runtime.maxMemory()by default as workaround for Android, memory-mapped files, ZGC, etc (issue #468) - Ensure
synchronizedcode inPointergets skipped with "org.bytedeco.javacpp.nopointergc" (issue tensorflow/java#313) - Add
protected Pointer.offsetAddress()and use it forgetPointer()instead ofposition() - Fix potential infinite loop in
Parserwhen processingclass,struct, oruniondeclarations - Have
Parserwrap theerase()methods of basic containers with iterators to allow removing from maps - Let
Parseroutput the content ofInfo.javaTextin the case of basic containers as well - Fix
Parserfailure on arguments containing multiple array accesses ending with]] - Fix
Parserincorrectly considering some array definitions with expressions as multidimensional - Log loading errors of optional
jnijavacppas debug messages instead of warnings (issue tensorflow/java#189) - Fix memory leak in
Pointer.releaseReference()with "org.bytedeco.javacpp.nopointergc" (issue awslabs/djl#690) - Fix
Parsernot stripping annotations fromInfo.pointerTypeswhen creating Java peer classes - Fix
Parsernot inheriting constructors with existingInfoor with nested templates - Add support for
std::tuple,std::optional, andstd::variantbasic containers and fix variousParserfailures - Add parameter for
Loader.load()to return path of a specific executable (pull #466) - Use
std::uninitialized_copyinVectorAdapterto make sure copy constructors get called (pull #465)
JavaCPP 1.5.5
March 8, 2021 version 1.5.5
- Ensure
System.gc()never gets called with "org.bytedeco.javacpp.nopointergc" (issue tensorflow/java#208) - Add
Info.immutableto disable generating setters for public data members (pull #461) - Map
Stringtochar*withCharset.forName(STRING_BYTES_CHARSET)when that macro is defined (pull #460) - Fix
Loader.ClassPropertiesnot always getting overridden correctly when defined multiple times - Allow
Loader.load()to also rename executables on extraction to output filenames specified with the#character - Add
@AsUtf16annotation to mapjava.lang.Stringtounsigned short*(array of UTF-16 code units) (pull #442) - Add
BasicStringAdapterand corresponding@StdBasicString,@StdU16String, and@StdU32Stringannotations (pull #448) - Fix
Parserfailures ontryblocks as function body, nested class templates, and aliases to namespaces starting with:: - Prevent
Loaderfrom failing to find, load, or link libraries multiple times - Fix
Pointer.getPointer()methods sometimes calling the wrong constructor (issue bytedeco/javacv#1556) - Prevent Android from trying to load
PointerBufferPoolMXBeanby using it via reflection (pull #447) - Fix Android build properties for NDK r22 and move legacy to
android-*-gcc.properties(pull #444) - Add support for Mac on ARM processors
- Fix
Loadernot searching for libraries in more than one package - Prevent
Builderfrom linking with-framework JavaVMwhen a path to the JVM library is found - Replace
requireswithrequires staticin JPMS.platformmodule (pull #436) - Let
ParseroutputInfo.javaTexteven for template declarations with no instances - Prevent
Tokenizerfrom usinglongliterals for unsigned integers of 16 bits or less - Ensure
Parserconsiders>=and<=as single tokens to prevent failures - Make
ParseruseInfo.cppTypesto override the type ofenumvalues - Fix
Parsernot using the correctInfo.pointerTypesforconst&declarations - Use pthreads in
Generatorto detach automatically native threads on exit for Linux and Mac as well - Let
Loader.load()always succeed on optional libraries only available with extensions - Fix
Builder.addProperty()incorrectly appending values together
JavaCPP 1.5.4
September 9, 2020 version 1.5.4
- Fix
Parsernot producingPointerPointerparameters forFunctionPointersubclasses - Let
Buildercopy even thoseplatform.executablefiles without prefix or suffix - Add missing declaration for
GetCurrentThreadId()inGeneratorwhenNO_WINDOWS_His defined - Process
#undefdirectives to allow redefining macros withParser(issue bytedeco/javacpp-presets#935) - Pick up in
Parsermethods specified withoverride, in addition tovirtual(issue #419) - Let
Parsercreate a separate Java peer class whenInfo.pointerTypesis different for types prefixed withconst - Fix
Generatorfor@Virtualmethods protected in subclasses by casting to superclass (issue #419) - Add missing values to
Info.Info(Info)and fix incorrectInfo.skipDefaults(boolean)(issue #420) - Add
PointerBufferPoolMXBeanto track allocations and deallocations ofPointer(pull #413) - Change the
@Platform(executable=...property to an array and allow bundling multiple files per class - Prevent
Builderunnecessarily linking with-framework JavaVMto fix GraalVM Native Image on Mac (issue #417) - Add
Pointer.getPointer()methods as shortcuts fornew P(p).position(p.position + i)(issue #155) - Fix
Generatorfor cases when aFunctionPointerreturns anotherFunctionPointer - Fix
Parserfailure withautokeyword of C++11 used as placeholder type specifier or for trailing return type (issue #407) - Add
Builder.configDirectoryoption to letGeneratoroutput files that GraalVM needs for AOT compilation (issue eclipse/deeplearning4j#7362) - Fix
Parsererror ontemplate<>containing non-type parameters without names (issue bytedeco/javacpp-presets#889) - Bundle also the
vcruntime140_1.dllandmsvcp140_1.dllredist files from Visual Studio - Fix
Builderfor different "java.home" path returned by latest JDKs from Oracle (pull #400) - Refactor
Buildera little to work around issues with Gradle - Log as warnings
SecurityExceptionthrown onLoader.getCacheDir()instead of swallowing them - Fix memory leak that occurs with "org.bytedeco.javacpp.nopointergc" (issue bytedeco/javacpp-presets#878)
- Take into account
platform.library.pathwhen extracting executables and their libraries onLoader.load()(issue bytedeco/javacv#1410) - Move init code for
Loader.getPlatform()toDetectorto avoid warning messages (issue #393) - Add
HyperslabIndexclass withoffsets,strides,counts, andblocksparameters (pull #392) - Add
Indexclass to allow overriding how the index is calculated inIndexer(issue #391)
JavaCPP 1.5.3
April 14, 2020 version 1.5.3
- Deprecate but also fix
Indexer.rows(),cols(),width(),height(), andchannels()(pull #390) - Fix
Parserproducing invalid wrappers for basic containers likestd::set<std::pair<...> > - Add compiler options for C++98, C++03, C++14, and C++17 to platform properties files (pull #389)
- Remove default compiler options from
linux-armhf.propertiesthat work mostly only for Raspberry Pi - Add
Generatorsupport forenumclasses withbooleanvalues (issue #388) - Fix
Parseroutputting invalid Java code forenumofboolean,byte, andshorttypes (issue #388) - Pick up in
Generatorthe@Namespaceannotation from paired method too for global getters and setters (issue #387) - Add presets for
jnijavacppandjavacpp-platformartifact to fix issues at load time (issue bytedeco/javacv#1305) - Prevent potential
NullPointerExceptioninLoader.checkVersion()(pull #385) - Allow using
Charsetto avoidUnsupportedEncodingExceptionfromBytePointer(pull #384) - Add static
Pointer.isNull(Pointer p)helper method, for convenience - Add
MoveAdapterand corresponding@StdMoveannotation to support objects that requirestd::movefrom C++11 - Always use
File.pathSeparatorwhen passing multiple paths via theBUILD_PATHenvironment variable - Fix
Parsernot picking upInfofor declarations withdecltype()specifier - Fix
Pointerlosing its owner when mistakenly ignoring deallocators forconstvalues returned from adapters - Remove unnecessary declared
ExceptionfromIndexer.close()signature (pull #382) - Make sure
Parserrecognizes base classes ofstructaspublicby default - Fix
Parsererror on initializer lists containing C++11 style{ ... }for template instances - Change the default mapping of
jbooleantoBooleanPointerinstead ofBoolPointer - Fix
Parsererror on function declarations with...varargs as single parameter - Make
Parserskip over&&-qualified functions automatically since they cannot be supported - Fix
Parserannotating pointer castoperatormethods with incorrect@Cast(issue #379) - Allow
Parserto inherit constructors from template classes withusing - Make
ParserhonorInfo.skipfor anonymousstructorunionas well - Optimize
Pointer.sizeof()method of subclasses for primitive types - Let users override
Info.enumerateon a per-enumbasis and allow attributes afterenum class - Fix
Parsernot considering identifiers as type names when placed directly afterfriendor intemplate<> - Check for defined
NO_WINDOWS_Hmacro inGeneratorto skip#include <windows.h> - Provide
UIntIndexerandULongIndexer, treating array and buffer data as unsigned 32- or 64-bit integers, for convenience (issue #376) - Fix
Parsernot evaluatingusing namespacewith respect to the current block (issue #370) - Fix exception in
Loaderwhen running jlink image with JDK 13+ (pull #375) - Fix errors with
@Virtual @Name("operator ...")inGeneratorby using Java names for C++ (issue #362) - Apply in
Parsermissingconstto parameters of@Virtualfunctions using adapters - Use in
GeneratorC++11overridekeyword for@Virtualfunctions (pull #373) - Speed up
Loader.load()by caching results returned fromLoader.findLibrary()(issue #287) - Pick up
Infocorrectly inParseralso for anonymous function pointers withconstparameters - Make
ParserapplyInfo.translatein the case of enumerators as well - Fix compiler failures in
Builderwith platform properties containing relative paths - Let
Parserrename types usingInfo.javaNamesin addition tovalueTypesandpointerTypes(pull #367) - Include in the defaults of
InfoMapmappings missing for thestd::arrayandjchartypes - Fix various
Parserfailures with attributes on constructors, empty macros, enum classes, friend classes, inherited constructors, and keywords in parameter names - Add to
Parsersupport for C++11 attributes found within[[and]]brackets - Consider
PointervaluesmaxBytesormaxPhysicalBytessuffixed with%as relative toRuntime.maxMemory()(pull #365) - Prevent
Parserfrom consideringconstexpr operatordeclarations asconsttypes - Fix on
Loader.load()the default library name of classes without@Properties(target=..., global=...) - Prevent
Parserfrom outputtingasPointer()cast methods with multiple inheritance (issue #360) - Add
CacheMojoto help extract binaries and resources used by command line tools outside of the JVM - Fix Android build properties for NDK r20b (pull #357)