Skip to content
Snippets Groups Projects
CHANGES 15.6 KiB
Newer Older
Version 3.12 -> 3.13
---------------------
 - fixed bug PYLUCENE-66
 - added support for Python 3.11

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 Hyvnen)
 - 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 Hyvnen)
 - 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 Hyvnen)
 - fixed bug PYLUCENE-38 (Aric Coady)
 - fixed bug PYLUCENE-39

Version 2.23 -> 3.0
-------------------
 - added support for Python 3 (3.3+) (with Rdiger 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<jstring>.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<jstring> (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