This is a new release of the OpenEye Toolkits with versions of the following libraries:
- This release starts the transition from the old LaTeX based documentation system to the new reStructuredText based system.
- Starting with OEChem 1.7.0 the core OpenEye toolkits (OEPlatform, OESystem, OEChem, OEBio) are now considered “thread-safe”. The Thread Safety section in the OEChem theory manual goes into more depth of what it means to be “thread-safe”. Many minor changes were made to achieve this, only the major ones are listed in the release notes. No guarantee is made about any other library.
- OEChem objects no longer rely on finalizers to clean themselves up (i.e., free memory). A separate thread is spawned to specifically handle OEChem object deletion. This reduces the risk of creating objects faster than the Java garbage collector can free them, usually leading to the process either running very slow, or crashing due to low memory.
- OEChem will allocate all memory from the Java heap. This makes OEChem adhere to any memory restrictions placed on the JVM. It also allows for more reliable OutOfMemory exceptions to be thrown back to Java code in the event the JVM heap runs out of memory.
- In previous versions, many functions had arguments of the type SWIGTYPE_p_float or SWIGTYPE_p_unsigned_int. These were opaque C++ pointers that could be created from the OE*Array family of classes. To simplify use, many functions that formerly took a SWIGTYPE_p_* now just take the corresponding OE*Array class instance directly. In previous versions, the user had to directly call the cast() method, but that is done inside the wrapper now.
- Many example programs have been renamed and cleaned up to provide better support across all three languages.
- Documentation example code is given a descriptive name instead of an out of date chapter and section number.