===================================================================================================
Changes in version 5.0.0 (July 2026)
+ Support the Leapseconds Clock Kernel files (spice files .tls).
+ Support the Spacecraft Clock Kernel files (spice files .tsc).
+ Support the Instrument Kernels files (spice files .ik).
+ Add the set of functions to convert dates (julian days or calendar dates) between different 
  timescales  (TCB, TDB, TT, TAI, UTC) : calceph_time... .
+ Add the set of functions to write binary SPK and PCK SPICE kernel ephemeris files in TDB or TCB timescales.
+ Add the calceph_getfov to retrieve data about the field of view of the instruments.
+ Add the documentation of the deprecated functions : Single file access functions.
+ Add a new define for asteroids on 8-digit NAIF ID : CALCEPH_ASTEROID_8.
+ Fix the compilation with android-ndk if API level >=23.
+ Fix the returned value of calceph_gettimescale with SPICE kernel files containing 
  segments of type 102.
+ Fix a buffer overflow in the function calceph_getfileversion in the Fortran 2003 interface.
  Change the array size of the function calceph_getfileversion from the value CALCEPH_MAX_CONSTANTNAME
  to CALCEPH_MAX_CONSTANTVALUE in the header file and documentation, to conform to the examples and to other interfaces.
  Only Fortran 2003 are affected by this change : previous header file and documentation contains an invalid declaration of the function.
+ Fix a buffer overflow in the function calceph_getconstantss in the Fortran 2003 interface.
  Change the array size of the last argument of the function calceph_getconstantss from the value CALCEPH_MAX_CONSTANTNAME
  to CALCEPH_MAX_CONSTANTVALUE in the header file and documentation, to conform to the examples and to other interfaces.
  Only Fortran 2003 are affected by this change : previous header file and documentation contains an invalid declaration of the function.
+ Fix the documentation of the functions f90calceph_getconstantss and f90calceph_getconstantvs in the Fortran 77/90/95 interface.
  Change the array size of the last argument of the function f90calceph_getconstantss from the value 
  CALCEPH_MAX_CONSTANTNAME to CALCEPH_MAX_CONSTANTVALUE, to conform to the examples and to other interfaces.
  Only Fortran 77/90/95 are affected by this change : possible buffer overflow occurs with previous documentation.
+ Fix the documentation and the behavior with numbers of the function calceph_getconstantvs and calceph_getconstantss.
+ Fix the compilation with vcpkg on the operating system arm64/linux.
+ Remove the undocumented function calceph_ and calcephinit_.

===================================================================================================
Changes in version 4.0.5 (June 2025)
+ Support the segment 19 in the SPICE kernel file.
+ Fix the installation with Cython>=3.1.0.
+ Fix the compilation of the documentation with Cmake 4.0 or later.

===================================================================================================
Changes in version 4.0.4 (December 2024)
+ Fix the calceph_gettimespan function result with non-integer time bounds in SPICE kernel files.
+ Support for parallel execution of the python and octave tests.

===================================================================================================
Changes in version 4.0.3 (December 2024)
+ Fix a crash of the function calceph_open and calceph_open_array with some invalid SPICE kernel files
  (files .tpc and .tf) on arm32v6 processors.
+ Add the man pages for the tools. 
+ Replace the calls to sprintf by the calls to the fortified function snprintf.
+ Version 4.0.2 skipped due to an archive problem.

===================================================================================================
Changes in version 4.0.1 (October 2024)
+ Fix the function calceph_open and calceph_open_array with some SPICE kernel files (files .bsp and .spk) 
  if the segment descriptor does not contain any segments.

===================================================================================================
Changes in version 4.0.0 (April 2024)
+ Use cmake to compile the library. Binary ABI may be broken by this major change in the compilation process. 
  The library remains compatible at the source level: the existing application therefore only needs a recompilation.
+ Add the function calceph_getidbyname and calceph_getnamebyidss.
+ Fix potential crash of fortran-90 interface only, on 32-bit OS, if ephemeris file does not exist.
+ Support frame name with any character except tab, space, comma, parenthese, equal, in the frame SPICE kernel file (files .tf).
+ Fix system error messages to be thread-safe (remove strerror).
+ Fix memory buffer overflow if the number of constants is greater than 400 in the original JPL files.

===================================================================================================
Changes in version 3.5.5 (February 2024)
+ Fix memory leaks when files are closed.
+ Fix heap buffer overflow (read only operation) with text SPICE kernel files.
+ Fix memory crash if the SPICE kernel files contain segments with a size of the directory greater than 100.

===================================================================================================
Changes in version 3.5.4 (December 2023)
+ Fix the documentation about the unsupported segment 19.
+ Fix the window size if requested time is near a boundary for SPICE kernel files containing 
  segments of type 18, compliant with the SPICE specifications.
+ Fix incorrect results for SPICE kernel files containing segments of type 20. 
+ Support the segment 14 in the SPICE kernel file.

===================================================================================================
Changes in version 3.5.3 (September 2023)
+ Fix compilation error with Cython 3.0 or later.
+ Fix compilation error with Python 3.10 or later on some linux distributions.
+ Fix the tests suite with octave, due to a change of the syntax parsing by octave.

===================================================================================================
Changes in version 3.5.2 (March 2023)
+ Fix a possible buffer overflow in the python interface of getfileversion.
+ Fix the undefined external symbol rint with visual C compiler 10.0.
+ Fix the redefinition of vasprintf with the environnment MinGW.

===================================================================================================
Changes in version 3.5.1 (February 2022)
+ Support the incremental assignment in the text SPICE kernel file (files .tpc).
+ Support the relative frames in the frame SPICE kernel file (files .tf).
+ Fix the returned values of calceph_getconstantvs with large SPICE kernels.
+ Fix random crash or double-free error when meta-kernel SPICE kernel files are closed (files .mk).
+ Raise an error inside the function calceph_compute if center != 0 for the target (14,15,16,17), 
  to conform to the documentation.
+ Fix the object name Megaclite (519) from NAIFID_MAGACLITE to NAIFID_MEGACLITE.

===================================================================================================
Changes in version 3.5.0 (August 2021)
+ Add the function calceph_getmaxsupportedorder, calceph_getpositionrecordindex2 and calceph_getorientrecordindex2.
+ Update config.sub and config.guess to support new processors.
+ Fix an incorrect result of calceph_(s)getconstant and calceph_getconstantvd with SPICE text kernel 
  if the current locale has a decimal separator different than the decimal point (e.g. comma)
+ Fix compilation warnings with gcc 11 about pointers and arrays.
+ Fix compilation errors with the android SDK API level < 24.
+ Fix the installation with python 3.10 or later (PEP 632).
+ Reduce the stack size of the arrays for the evaluation with C99 compilers.
+ Change the array size of the function calceph_getfileversion from the value CALCEPH_MAX_CONSTANTNAME
  to CALCEPH_MAX_CONSTANTVALUE, to conform to the documentation and examples.
  Only C and Fortran 2003 are affected by this change : previous header file contains an invalid declaration of the function.
  Few programs may be affected by this change, as the required array has a smaller size : No buffer overflow may appear. 

===================================================================================================
Changes in version 3.4.7 (November 2020)
+ Fix a decode error of the little-endian SPICE kernel files on the big-endian architectures (e.g. processor s390x).
+ Fix the transmission of the flags FCFLAGS to the fortran compilers.

===================================================================================================
Changes in version 3.4.6 (August 2020)
+ Fix a wrong error message about unsupported order for the segment 21.
+ Fix incorrect results for SPICE kernel files containing segments of type 21 with many records 
  (>=100) and improve the accuracy if segments of type 21 contain few records (<100).

===================================================================================================
Changes in version 3.4.5 (June 2020)
+ Fix a random crash of calceph_open_array if one of the file is invalid.
+ f90calceph_seterrorhandler now ignores the parameter userfunc, instead of the requirement to set to 0, 
  if the parameter type is 1 or 2. userfunc can be an empty function. 
  It fixes compilation errors with gcc 10.1.

===================================================================================================
Changes in version 3.4.4 (April 2020)
+ Fix a regression introduced in 3.4.3 (remove a recursion with SPICE kernel files).

===================================================================================================
Changes in version 3.4.3 (April 2020)
+ Remove a recursion to read the segments of the SPICE kernel files. It reduces the usage of the stack. 
+ Fix the installation of python package under Anaconda

===================================================================================================
Changes in version 3.4.2 (January 2020)
+ Add a missing makefile for windows system using the Visual C++ compiler. 
+ Support SPICE kernels larger than 4GBytes. 

===================================================================================================
Changes in version 3.4.1 (November 2019)
+ Improve the execution time of calceph_open and calceph_open_array if the spice kernels contains a large number of bodies.
+ Update config.sub and config.guess to support arm processors.

===================================================================================================
Changes in version 3.4.0 (August 2019)
+ Add the function calceph_isthreadsafe.
+ Multiple threads can now access the same ephemeris descriptor if the function calceph_isthreadsafe returns 1. 
+ Fortran and C examples (f2003parallel.f, cparallel.c), written using OpenMP, are available in the folder examples.
+ Fix an error if multiple SPICE kernels are loaded for the same objects over different time-span.
+ Fix the MinGW Makefiles if the variable MAKE contains spaces.
+ Support the segment 5 and 18 in the SPICE kernel file.
+ Support the euler angles for the orientation stored in a text PCK files
  (BODY..._POLE_RA, BODY..._POLE_DE, BODY..._POLE_PM, BODY..._NUT_PREC_...).
+ Support the frame 17 (ECLIPJ2000) in the SPICE kernel file.
+ Add the utilities calceph_queryposition and calceph_queryorientation.

===================================================================================================
Changes in version 3.3.1 (February 2019)
+ Fix the installation with python 3.7.0 or later.
+ Fix the installation with python and pip on Windows operating system.
+ Add the missing file pythonapi/src/Makefile.mingw for the environnment MinGW.

===================================================================================================
Changes in version 3.3.0 (January 2019)
+ Add the functions calceph_sgetfileversion and calceph_getfileversion.
+ Fix a regression to open some old JPL DE format files.
+ Fix a compiler warning in the file util.c.
+ Support the segments 8, 9, 17 and 21 in the SPICE kernel file.
+ Check the validity of the number of constants in the original INPOP/DE files.
+ For the Python interface, the functions compute??? and orient??? supports a list or numpy's array for the time parameters.

===================================================================================================
Changes in version 3.2.0 (October 2018)
+ Fix the creation of the dynamic library with msys/mingw on Windows.
+ Fix the returned values of the functions f90calceph_getconstantvd and f90calceph_getconstantvs.
+ Fix a compilation warning with the GNU C compilers 8.0 or later.
+ Support the original JPL files with TT-TDB or with a large number of constants.
+ Support the IAU 1980 Nutation Angles of the JPL files.
+ Add the NAIF identification numbers for DIA, KERBEROS, STYX and SIDING SPRING.
+ Add the option installnodoc to the command make.

===================================================================================================
Changes in version 3.1.0 (May 2018)
+ Fix a compilation problem with MinGW if the terminal cmd.exe is used.
+ Fix a wrong function name open_array instead of open in the documentation of the Python interface.
+ Fix the return value of the functions calceph_orient_xxx when the unit CALCEPH_UNIT_RAD is not provided.
+ Add the Mex interface compliant with Octave 4.0+ and Matlab 2017+.
+ Add the functions calceph_getconstantsd, calceph_getconstantvd and calceph_getconstantss and calceph_getconstantvs.
+ The return value of the function calceph_(s)getconstant(index) is the number of values associated to the constant.
+ Display a better message for the unsupported old spice kernel (NAIF/DAF)

===================================================================================================
Changes in version 3.0.0 (February 2018)
+ Update the license CeCILL v2.0 to CeCILL v2.1.
+ Fix a decode error for SPICE kernels with a big-endian format.
+ Add the functions calceph_gettimescale and calceph_gettimespan.
+ Add the functions calceph_getpositionrecordcount and calceph_getpositionrecordindex.
+ Add the functions calceph_getorientrecordcount and calceph_getorientrecordindex.
+ Add the functions calceph_sgettimescale and calceph_sgettimespan.
+ Support INPOP file format 3.0 (add angular momentum due to the rotation in the binary file).
+ Use sphinx-doc to produce the documentation.

===================================================================================================
Changes in version 2.3.2 (January 2017)
+ Fix the return value of the function calceph_getconstant if the constant name "AU" or "EMRAT" is not available.
+ Fix the documentation for the fortran interface of the function calceph_prefetch.
+ Fix the return value of the function calceph_orient_unit if the frame SPICE kernel file is missing.

===================================================================================================
Changes in version 2.3.1 (November 2016)
+ Fix the compilation warnings with the Pelles compiler.
+ Fix the compilation warnings with the C89 standard.
+ Fix the compilation warnings with the GNU C compilers.
+ Fix the documentation for the constant CALCEPH_VERSION_STRING.

===================================================================================================
Changes in version 2.3.0 (September 2016)
+ Add the Python interface compliant with python 2.6+ and python 3.
+ Add the preprocessor macro CALCEPH_VERSION_STRING.
+ Add the function calceph_getversion_str.
+ Add the function calceph_compute_order and calceph_orient_order.
+ Fix the return value of the functions calceph_compute_xxx when the reference frame is not available in the spice kernel files.
The function should produce an error  and return 0 (before the function performed no computation but it returned 1).

===================================================================================================
Changes in version 2.2.5 (July 2016)
+ Support the segment 1, 12 and 13 in the SPICE kernel file.
+ Fix an incorrect result if CALCEPH_UNIT_DAY is provided to calceph_compute_unit 
and the target is TCG-TCB or TT-TDB.
+ Support the numerical constants declared without parenthesis in the text kernel files (.tpc).

===================================================================================================
Changes in version 2.2.4 (August 2015)
+ Update the version number of the dynamic library.

===================================================================================================
Changes in version 2.2.3 (June 2015)
+ Add the predefined constants for calceph version in the fortran interface.
+ Fix the build chain if calceph is compiled from another folder.

===================================================================================================
Changes in version 2.2.2 (october 2014)
+ Support the compilation in the standard C89.

===================================================================================================
Changes in version 2.2.1 (September 2014)

+ Remove debug informations that are printed when errors occur in calceph_?compute_???.
+ Support the Portland compilers.
+ Fix the info documentation.
+ Report an error if no asteroid is available in an ephemeris file with 
  the INPOP file format (instead of a crash).

===================================================================================================
Changes in version 2.2.0 (March 2014)

+ Support the new segments 20, 102, 103 and 120 in the SPICE kernel file.
+ Support the NAIF identification numbers.
+ Add the function calceph_orient_unit and calceph_prefetch.


===================================================================================================
Changes in version 2.1.0 (June 2013)

+ Fix a bug in calceph_getconstant and calceph_sgetconstant with an invalid name
+ Remove the nul character  in the name of the constant returned by the function
  (f90)calceph_(s)getconstantindex when the Fortran interface is used.

===================================================================================================
Changes in version 2.0.0 (February 2012)

+ Add the function calceph_open_array and calceph_compute_unit.
+ Add the tools calceph_inspector to show details about ephemeris file.
+ Support the SPICE kernel file (SPK with segment 2 or 3, text and binary PCK, meta kernel, basic frame kernel).
+ Improve the performances
+ Correct the Fortran 2003 interface for calceph_sgetconstantindex.
+ Add the constant 17 to get TCG-TCB from TCB ephemeros file.
+ Fix memory leaks in calceph_open when errors occur.
+ Supports INPOP file format 2.0 (add asteroids in the binary file and supports TCB ephemeris file).

===================================================================================================
Changes in version 1.2.0 (May 2011)

+ Change the licensing : triple licenses to support integration in BSD software
+ Remove explicit dependencies on the record size for DExxx. 

===================================================================================================
Changes in version 1.1.2 (March 2011)

+ Fix a warning with oracle studio compiler 12.
+ Fix a bug with gcc on solaris in 64 bit mode.
+ Fix the copyright statements.

===================================================================================================
Changes in version 1.1.1 (November 2010)

+ Fix a compilation error in util.h  and a warning with the sun studio compilers.

===================================================================================================
Changes in version 1.1.0 (November 2010)

+ Add the function calceph_seterrorhandler for the custom error handlers.

===================================================================================================
Changes in version 1.0.3 (May 2010)

+ Support the JPL ephemeris file DE423.

===================================================================================================
Changes in version 1.0.2 (January 2010)

+ Fix memory leaks in the fortran-90 interface.


===================================================================================================
Changes in version 1.0.1 (October 2009)

+ Support the large binary ephemeris files (>2GB) on 32-bit operating systems.
+ Fix the documentation of the function f90calceph sopen.
+ Fix an invalid open mode on Windows operating systems.
+ Report accurately the I/O error.


===================================================================================================
Changes in version 1.0.0 (May 2009)

+ Initial release
