- Version 1.07.0 (17/07/2024):
- "WarnOnEmptyStructure option problem / Issue #25 has been fixed
- Software unresponsiveness when options are applied without any input file(s) has been fixed
- Addressing
Google® oss-fuzz
issues - Minor bugs fixes
- Version 1.07-Release Candidate 4 (RC4) (27/06/2024):
- Addressing
Google® oss-fuzz
issues - Minor bugs fixes
- Addressing
- Version 1.07-Release Candidate 3 (RC3) (13/06/2024):
- Issues with executables compiled with
GCC
versions12.x/13.x/14.x
has been fixed. Starting fromInChI v.1.07-RC3
, any version ofGCC
compiler can be used. - Addressing
Google® oss-fuzz
issues - Minor bugs fixes
- Issues with executables compiled with
- Version 1.07-Release Candidate 2 (RC2) (04/06/2024):
- Addressing
Google® oss-fuzz
issues - Minor bugs fixes
- Addressing
- Version 1.07-Release Candidate 1 (RC1) (27/05/2024):
- Addressing
Google® oss-fuzz
issues - Minor bugs fixes
- Addressing
- Beta5 (23/04/2024):
- Addressing
Google® oss-fuzz
issues - Licence updated
- Addressing
- Beta4 (24/03/2024):
- "/b-layer" issue / Issue #9 has been fixed
- Incorrect output message regarding CPU architecture on ARM64 CPUs / Issue #10 has been fixed
- Further
Google® oss-fuzz
issues have been addressed
64-bit and 32-bit precompiled binaries (executable, .dll/.so
and ELF files) are located in the following folders:
Microsoft® Windows | ||
Files (given in compressed .zip format)
|
Location(s) | Compiler |
inchi-1.exe
|
64-bit: INCHI-1-BIN/windows/64bit
|
Microsoft® Visual Studio C++ (MSVC)
|
32-bit: INCHI-1-BIN/windows/32bit
|
MinGW-w64/GCC
|
|
libinchi.dll + corresponding inchi_main.exe
|
64-bit: INCHI-1-BIN/windows/64bit/dll
|
Microsoft® Visual Studio C++ (MSVC)
|
32-bit: INCHI-1-BIN/windows/32bit/dll
|
MinGW-w64/GCC
|
UNIX-based OSs and MacOS® | ||
Files (given in compressed .gz format)
|
Location(s) | Compiler |
inchi-1 (ELF file)
|
64-bit: INCHI-1-BIN/linux/64bit/ 32-bit: INCHI-1-BIN/linux/32bit/
|
GCC
|
libinchi.so.1.07 + corresponding inchi_main (ELF file)
|
64-bit: INCHI-1-BIN/linux/64bit/so/ 32-bit: INCHI-1-BIN/linux/32bit/so/
|
GCC
|
Project files for Microsoft® Visual C++ (MSVC)/Clang/LLVM
users are provided for both command line and API versions of InChI v.1.07
. The project files are located in the following folders:
INCHI-1-SRC/INCHI_EXE/inchi-1/vc14
(command line version)INCHI-1-SRC/INCHI_API/demos/inchi_main/vc14
(API version consisting oflibinchi.dll
and its corresponding executableinchi_main.exe
)INCHI-1-SRC/INCHI_API/libinchi/vc14
(API version consisting only oflibinchi.dll
).
For other C compilers, makefile/makefile32
files are provided in the following folders:
INCHI-1-SRC/INCHI_EXE/inchi-1/gcc
(command line version)INCHI-1-SRC/INCHI_API/demos/inchi_main/gcc
(API version consisting oflibinchi.dll/libinchi.so.1.07
and its corresponding executable/ELFinchi_main.exe/inchi_main
)INCHI-1-SRC/INCHI_API/libinchi/gcc
(API version consisting only oflibinchi.dll/libinchi.so.1.07
).
makefile/makefile32
files are configured to detect OSs automatically, so it is no longer needed to specify OS explicitly or run batch/bash script(s) before compiling. If both GCC
and Clang/LLVM
compilers are detected, GCC
is used by default; setting Clang/LLVM
as default compiler can be done simply by changing CCN
parameter from 1
to 2
in makefile/makefile32
.
If makefile/makefile32
is used for compiling libinchi
on Microsoft® Windows, libinchi.dll
is now generated instead of libinchi.so.1.07
.
In order to further improve code security, bounds checking functions (see Annex K of C11 standard) can be optionally used in InChI v.1.07
. Since a number of C compilers (e.g. GNU GCC
) do not support bounds checking functions, they can be installed using some of the third-party open-source libraries such as:
- safec libc extension with all C11 Annex K functions -- actively maintained
- Safe C lib
- Implementation of C11 Annex K "Bounds-checking interfaces" ISO/IEC 9899:2011
The use of bounds checking functions in InChI v.1.07
can be enabled/disabled in bcf_s.h
.
If you wish to use Intel® oneAPI Threading Building Blocks (oneTBB), please follow the instructions given in header files mode.h
and tbbmalloc_proxy.h
. Please note that the pre-compiled binaries mentioned in the previous section do not use oneTBB
.
If API version (i.e. libinchi.so.1.07
and inchi_main
ELF file) is compiled using Clang/LLVM
on Linux
OS, and libinchi.so.1.07
cannot be found by inchi_main
, LD_LIBRARY_PATH
should be set either temporarily or permanently before inchi_main
ELF file is used.
It might be worth trying to change the value of LINKER_CWD_PATH
to -Wl,-R,"",-rpath,$(LIB_DIR)
(i.e. replacing =
with ,
) in corresponding makefile/makefile32
; however, please note that during our tests, this option failed to generate libinchi.so.1.07
with Clang/LLVM
on Linux.
More reliably, LD_LIBRARY_PATH
can be set in several ways:
-
Temporarily:
-
by running a shell script
ldlp_fix.sh
(located in/INCHI_API/bin/Linux
) with either of these two commands:. ldlp_fix.sh
source ldlp_fix.sh
;
path to
libinchi.so.1.07
can be edited inldlp_fix.sh
-
using command line interface:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/libinchi.so.1.07
-
-
Permanently:
-
by adding the following line in
~/.bashrc
:LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/path/to/libinchi.so.1.07"
-
by adding the
libinchi.so.1.07
path told.so.conf
, which means adding a file/etc/ld.so.conf.d/local.conf
containing just one line:path/to/libinchi.so.1.07
and then running
sudo ldconfig
.
-
- Open-source utility [patchelf](https://github.com/NixOS/patchelf) can also be of use.
If a similar issue occurs on MacOS<sup>®</sup>, one of the above solutions should be applied for setting `DYLD_LIBRARY_PATH` and/or `DYLD_FALLBACK_LIBRARY_PATH` (which behave like `LD_LIBRARY_PATH`).
Some of the experimental/engineering/hidden options featured in InChI 1.07
which are known to be not fully functional are:
-
In command line version:
-
32-bit
Microsoft® Visual Studio C++ (MSVC) Win32
compiler-specific issue with the following options:AMI
Allow multiple input files (wildcards supported)AMIOutStd
Write output to stdout (in AMI mode)AMILogStd
Write log to stderr (in AMI mode)AMIPrbNone
Suppress creation of problem files (in AMI mode)
-
- In API/
.dll
/.so
version:PT_22_00
Account for PT_22_00 tautomerism (experimental)PT_16_00
Account for PT_16_00 tautomerism (experimental)PT_06_00
Account for PT_06_00 tautomerism (experimental)PT_39_00
Account for PT_39_00 tautomerism (experimental)PT_13_00
Account for PT_13_00 tautomerism (experimental)PT_18_00
Account for PT_18_00 tautomerism (experimental)Polymers105
Allow processing of polymers (experimental, legacy mode of v. 1.05)NoEdits
Disable polymer CRU frame shift and foldingNPZz
Allow non-polymer-related Zz atoms (pseudo element placeholders)SAtZz
Allow stereo at atoms connected to Zz(default: disabled)InChI2Struct
Test mode: Mol/SDfile -> InChI -> Structure -> (InChI+AuxInfo) -- producesFatal Error (2)3
just like inInChI v.1.06
InChI2InChI
Convert Convert InChI string(s) into InChI string(s) -- producesFatal Error(2)3
just like inInChI v.1.06
Please refrain from using the above mentioned options as they might not function properly, or will not be recognised. Regular updates with regard to their functionality will be posted on this page.