Version 3.14 -> --------------------- - fixed bug PYLUCENE-70 - Version 3.13 -> 3.14 --------------------- - added support for --generate to output setup.py instead of calling setup() Version 3.12 -> 3.13 --------------------- - fixed bug PYLUCENE-66 - added support for Python 3.11 - JCC no longer tested with Python 2 Version 3.11 -> 3.12 --------------------- - fixed bug with not checking presence of compiled extension directory - --find-jvm-dll changed to a string from bool, defaulting to "client" - fixed --find-jvm-dll support to use new os.add_dll_directory() for py >= 3.8 - fixed bug PYLUCENE-62 (with help from Petrus Hyvönen) - refreshed linux build config to default to temurin JDK 17 Version 3.10 -> 3.11 --------------------- - added support for building with native JDK 17 on Apple M1 - added support for detecting Temurin JDK distribution (replaces AdoptOpenJDK) Version 3.9 -> 3.10 ------------------- - fixed refcounting error with makeType() not INCREF'ing types already present - fixed basicsize assertion by ensuring subtype type >= base size - replaced deprecated PyUnicode_<...> calls with post 3.3 implementations Version 3.8 -> 3.9 ------------------ - fixed bug with --import support using python2's os.path.walk() from python3 - fixed crash when failing to update classpath of running VM Version 3.7 -> 3.8 ------------------ - added support for building wheels via --wheel flag (Chee Yong Teh) - fixed bug with class order dependent missing required dependencies Version 3.6 -> 3.7 ------------------ - fixed bug with wrongly assuming 1BYTE_KIND python strings to be utf-8 - added setting of type.__module__ for all generated wrapper types (python 3) - added support for Python 3.8 Version 3.5 -> 3.6 ------------------ - fixed bug PYLUCENE-47 (with help from Petrus Hyvönen) - fixed bug PYLUCENE-48 - removed overlap between int and byte types when parsing args (PYLUCENE-50) Version 3.4 -> 3.5 ------------------ - fixed bug PYLUCENE-46 Version 3.3 -> 3.4 ------------------ - added NAN to the list of reserved words Version 3.2 -> 3.3 ------------------ - fixed bug PYLUCENE-43 - fixed bug PYLUCENE-41 Version 3.1 -> 3.2 ------------------ - added missing 'const' breaking build with Python 3.7 (Aric Coady) - fixed bug with not skipping META-INF/ entries in .jar files Version 3.0 -> 3.1 ------------------ - fixed bug PYLUCENE-36 (Paulo Villegas) - reworked type construction to use PyType_FromSpecWithBases (Python 3) - added 'm' suffix to linux -lpython statement for shared jcc lib - fixed bug with using split instead of rpartition on path (Petrus Hyvönen) - fixed bug PYLUCENE-38 (Aric Coady) - fixed bug PYLUCENE-39 Version 2.23 -> 3.0 ------------------- - added support for Python 3 (3.3+) (with Rüdiger Meier and Thomas Koch) - python3: fixed bugs with surrogate pairs (now supported for the first time) Version 2.22 -> 2.23 -------------------- - extended ability to explicitely requesting wrappers to fields Version 2.21 -> 2.22 -------------------- - monkeypatched customize_compiler to fix darwin linker error due to -Wl,-x - added check that MACOSX_DEPLOYMENT_TARGET is set to at least 10.5 - replaced MACOSX_DEPLOYMENT_TARGET check -mmacosx-version-min=10.5 - shared mode now requires a modern setuptools (version >= 8) Version 2.20 -> 2.21 -------------------- - improved through-layer Python error handling (with Lee Skillen) Version 2.19 -> 2.20 -------------------- - added support for java varargs by reconstructing array from last parameters Version 2.18 -> 2.19 -------------------- - fixed bug with missing class parameters when fixed by declaration - improved runtime support for fixed class generic parameters - improved runtime support for fixed class array generic parameters Version 2.17 -> 2.18 -------------------- - fixed bug PYLUCENE-26 (Martin Anon) - added support for building with setuptools >= 1.1.6 Version 2.16 -> 2.17 -------------------- - added support for detecting and running with Oracle JDK 7 on Mac OS X - added skipping of synthetic methods Version 2.15 -> 2.16 -------------------- - improved parseArgs() to let nested arrays pass through - added 'min', 'max' and 'PREFIX' to reserved words list to placate Visual C++ Version 2.14 -> 2.15 -------------------- - improved JCC build on Linux by monkey patching setuptools (Caleb Burns) - fixed bug with wrapping arrays coming out of generic iterators - added support for wrapping non-public methods by listing them as class:method - fixed bug with wrapping wrong clone() method in python extensions classes Version 2.13 -> 2.14 -------------------- - fixed class initialization race bug PYLUCENE-17 (with Patrick J. McNerthney) - added support for initVM's vmargs to be a [list, of, args], PYLUCENE-19 - added support for using full Java class names in Python via --use_full_names - fixed bug PYLUCENE-20 (Roman Chyla) Version 2.12 -> 2.13 -------------------- - fixed bug with name collision between method and static field of same name - added --maxheap, --egg-info and --extra-setup-arg parameters (Chris Wilson) - added check for duplicate class names in generated Python module - updated setuptools patch logic to accomodate new 0.6.15 and up fork - fixed issues with with arrays as generics parameters (openjdk 7) - added support for auto-boxing primitive types when converting to object array - fixed bug with setting a string into an object array - fixed bug with decref'ing too early when converting a sequence to an array Version 2.11 -> 2.12 -------------------- - fixed slice operation bug on JArray (int vs Py_ssize_t on 64-bit systems) - fixed bug in argument parsing not detecting soon enough incorrect num args - fixed bug in JArray(type) function decref'ing type_name too soon Version 2.10 -> 2.11 -------------------- - improved recovery from toString() failure, displaying class name instead - non public classes listed on command line now wrapped (Lukasz Jancewicz) - fixed bug with generating wrappers for unimplemented interface methods - fixed bug with generating propMethods for void getters - fixed bug with missing code for returning arrays from iterators Version 2.9 -> 2.10 ------------------- - added javadoc for org.apache.jcc.PythonVM class (Bill Janssen) - fixed bug with Constructor.getGenericParameterTypes() losing first parameter Version 2.8 -> 2.9 ------------------ - fixed bug with excluding inner classes only (Christian Heimes) - fixed bug with Python gc in non-attached JVM thread (Christian Heimes) Version 2.7 -> 2.8 ------------------ - fixed bug with --module using relative paths (Roman Chyla) - made fully qualified C++ class names absolute - fixed bug with parameterized types not requiring classes found in parameters - fixed bug with missing space between >> of nested generics Version 2.6 -> 2.7 ------------------ - added 'IGNORE' to reserved word list - improved --exclude logic to also exclude inner classes of excluded classes - moved --find-jvm-dll logic to __init__.py to accomodate Python 2.7 - fixed bug with faulty Java version logic causing crashes with Java 1.5 - added logic for finding JavaVM.framework headers on Mac OS X (Bill Janssen) Version 2.5 -> 2.6 ------------------ - added freebsd7 settings to setup.py (Sujan Shakya) - added support for unix-specific --home distutils install parameter - added support for extracting JAVAHOME from Windows registry (Bill Janssen) - updated MANIFEST.in as sdist started creating incomplete source archives - improved support for building on Windows with mingw32 (Bill Janssen) - added support for --find-jvm-dll parameter (Bill Janssen) - fixed bug with not inheriting type parameters to inner parameterized classes - added support for of_() method to set instance type parameters - fixed bug with not heeding type parameter for --sequence get method - parameterized return values are now unboxed - improved auto-boxing of primitive type parameters - added support for auto-boxing CharSequence from python str and unicode - added support for auto-boxing Number from python int, long and float - added 'asm' to list of reserved words - added JCC_VERSION string to modules using JCC - added support for --resources - fixed bug with array Release calls using isCopy instead of 0 mode - added support for --import - added read-only env.classpath property - config.py now written only during build or when missing (Christian Heimes) - fixed bug with not enforcing Iterable for iterator method detection Version 2.4 -> 2.5 ------------------ - added env.jni_version for the JNI version as returned by JNI's GetVersion() - added env.java_version for java.lang.System.getProperty('java.version') - default value to initVM's classpath parameter now is importing module's - added support for Java generics - added 'string_' property to JArray('byte') instances to extract byte string - fixed bug with passing list of extension objects - reworked iterator and enumeration 'next' templates to shortcut C++ wrappers - fixed bug in code comparing setuptools versions when >= 0.6c10 - verified build against setuptools from distribute 0.6.6 - renamed patch.43 to differentiate setuptools versions Version 2.3 -> 2.4 ------------------ - added 'typeof' to reserved word list - added Java stacktrace to __str__() of JavaError, fixing half of PYLUCENE-1 - fixed local string ref leaks in JArray.get/toSequence (Aric Coady) - added --libpath parameter to specify -Djava.library.path - classes listed with --exclude are no longer loaded (except for dependencies) - added --vmarg to add Java VM initialization parameters (Christian Kofler) - added support for passing a directory to --module - byte values are now returned as signed numbers as opposed to one-char strs - added --arch command line flag to filter Mac OS X python config settings - cast_() and instance_() methods now generated on extension classes as well - fixed bug with reporting Python error that occurred in an extension class Version 2.2 -> 2.3 ------------------ - fixed Solaris compilation issue with using va_arg() with function pointers - added --reserved command line arg to extend list of words to mangle - fixed bug with initJCC not being run when Python VM embedded in JVM - added --wininst to enable use of bdist_wininst with distutils (Jonas Maurus) - added --help to describe command line options (Jonas Maurus) - added support for --rename to workaround python flattened namespace clashes - fixed bug with Enumeration/Iterator template function instantiation - removed -framework Python from darwin link flags in setup.py Version 2.1 -> 2.2 ------------------ - JCC now a subproject of the Apache PyLucene project - fixed bug where thread's JNIEnv was not set before calling findClass() - unhandled java exception now is printed out via ExceptionDescribe() - added cast to placate Solaris compiler error in JArray.cpp - JArray Python wrappers should return None when passed a null array - added JDK variable to setup.py to better parameterize build configuration - added support for proxying mapping and sequence protocols on FinalizerProxy - changed Type suffix to $$Type to avoid clashes with like-named Java classes - added 'bool' and 'operator' to list of reserved words - added support for packages and classes named with C++ reserved words - static methods shadowed by non-static methods of same name now '_' suffixed - added 'java.lang' to --package by default - added isCurrentThreadAttached() method to VMEnv - added MANIFEST.in to exclude generated jcc/config.py (Christian Heimes) - passing strings for byte[] or char[] is no longer supported, use JArray - failure to call initVM() now reported with error instead of crash - failure to find class now reported with error instead of crash - failure to call attachCurrentThread() now reported with error, not crash Version 2.0 -> 2.1 ------------------ - fixed bug with not checking missing module name when attempting build - increased jcc's java stack to 512k - added support for iPod/iPhone, with shared mode - added missing cast to jweak in call to DeleteWeakGlobalRef() - fixed local string ref leak in JArray (Aaron Lav) - fixed local ref leak if ref for object already exists in table (Aaron Lav) - fixed bug with error reporting from class methods (Aaron Lav) - fixed bug with reporting python errors with RuntimeException when not shared - removed bogus storage class from template specializations (Joseph Barillari) Version 1.9 -> 2.0 ------------------ - fixed bug with failed findClass() import - fixed bug http://bugzilla.osafoundation.org/show_bug.cgi?id=12127 - added -ljvm to linux2 and sunos5 LFLAGS - added support for using JCC in reverse (starting from Java VM) (shared only) - using PythonException for reporting Python errors (shared only) - inserted Apache 2.0 license copyright notices - fixed bug with declaring array parameters in extension methods - added support for --module to add individual python files to resulting egg - JCC in reverse functional on Mac OS X and Linux - fixed JCC in reverse threading issues - JCC in reverse usable with Tomcat - got python stacktrace into PythonException's message - added 'self' property to get wrapped python object from extension wrapper - added headless AWT workaround to JCC's own initVM() call - added DEBUG_CFLAGS to setup.py to improve debug build support - fixed uninitialized Class class bug (parseArgs) - added errorName field to PythonException - added support for excluding stack trace from PythonException - arrays are now wrapped by JArray() objects instead of expanded into lists - return by value in arrays now supported - added support for nested arrays via JArray().cast_() - included patch to setuptools to support shared mode on Linux Version 1.8 -> 1.9 ------------------ - fixed code generation for clone() broken by finalization proxy work - added 'union' to the list of reserved words - fixed castCheck() to work with finalization proxies - --compile no longer installs by default - fixed bug in __init__.cpp #include statements for package-less classes - fixed line ending bug on Windows - fixed multiple JCC-built extensions in same process problem - removed env argument from initVM() as it's redundant with the libjcc.dylib - reimplemented env->setClassPath() in terms of system URLClassLoader hack - added support for --include option - added 'NULL' to list of reserved words - added support for building shared libjcc library on Mac OS X and Linux - fixed bug with generating wrappers for abstract Enumeration implementations - added support for --install-dir and --use-distutils options - copy jcc runtime sources into extension source tree before compiling - added detection of invalid command line args - fixed double-free bug when passing in vmargs - added defines to enable building with MinGW (Bill Janssen) - added support for --bdist - added support for --compiler - fixed crasher on Windows with virtual JObject.weaken$() - fixed bug not checking return value from initVM() - fixed bug with findClass() not catching C++ exception when class not found - added missing code in parseArgs() to handle double[], float[] and long[] Version 1.7 -> 1.8 ------------------ - fixed bug using the wrong field modifiers for setter (Bill Janssen) - added missing calls for generating wrappers for ancestors of Exception - added missing call for generating wrappers for String - added note about --classpath to README Version 1.6 -> 1.7 ------------------ - fixed memory leak when calling inherited methods via callSuper() - added support for building on Solaris with Sun Studio C++ (Solaris 11) - fixed leak of local refs of jstring when converting to an array of String - automated finalization of extensions via proxy for breaking ref cycle - added Py_CLEAR and Py_VISIT macros for Python 2.3.5 compilation Earlier versions (changes included in PyLucene versions < 2.3) -------------------------------------------------------------- - see http://svn.osafoundation.org/pylucene/trunk/jcc/CHANGES