For links to What's New information for other releases, go to See Also.

New Features


Support for RSA Asymmetric Cryptographic Keys

The new RSA_PRIVATE_KEY and RSA_PUBLIC_KEY routines let you create a set of RSA asymmetric keys. The IDL_String::Encrypt and Decrypt methods let you encrypt and decrypt IDL strings using an RSA public/private key pair.

Date/Time Routines Now Support Modified Julian Dates

CALDAT, GREG2JUL, JUL2GREG, JULDAY, SYSTIME, and TIMEGEN now have a new MODIFIED keyword, to return Modified Julian Dates, which have a higher precision of approximately one microsecond.

ARRAY_EQUAL and IDL_Variable::Equals - New TOLERANCE Keyword

ARRAY_EQUAL and IDL_Variable::Equals now have a new TOLERANCE keyword which will treat values as being equal if they are within the tolerance value from each other.

COMPILE_CODE Routine

The new COMPILE_CODE procedure creates and compiles an IDL function or procedure from a scalar string or string array. COMPILE_CODE can be useful to avoid having to create a new file for a small algorithm, or in cases where you want to dynamically generate a function or procedure from user inputs or variables.

FILE_SEARCH - New NULL Keyword

FILE_SEARCH has a new NULL keyword, which will return !NULL if there are no filename matches.

JSON_SERIALIZE - New PRECISION Keyword

The PRECISION keyword of JSON_SERIALIZE lets you change the output precision for floating-point numbers, which lets you create smaller JSON files or files with a specific output precision.

RUNNING_STATS Routine

The RUNNING_STATS routine lets you compute the mean and unbiased sample variance of an array without overflow. The function can also combine previously computed values with new data to allow computing mean and variance on data sets that are too large to fit into memory. The routine is more stable when computing the mean and variance, is significantly faster than the VARIANCE function, and does not require any additional memory.

RUNNING_COVARIANCE Routine

The RUNNING_COVARIANCE routine computes the unbiased sample covariance and correlation between two arrays without overflow. The function can also combine previously computed values with new data to allow computing covariance and correlation on data sets that are too large to fit into memory. The routine is more stable and significantly faster than the CORRELATE function, and does not require any additional memory.

Updates


MAKE_RT Syntax Enhancements

The manifest file for MAKE_RT has a new, more expressive syntax for specifying which files to include and exclude.

IDL and ENVI now Code Signed on macOS

The IDL and ENVI applications are now code signed on macOS. This enables simpler, trusted installations on the more recent versions of macOS. Code-signed software is also resistant to tampering and misuse.

LIST Performance Enhancements

The List::Filter, Map, Reduce, and Remove methods are now significantly faster.

PNG Files of Arbitrary Size

QUERY_PNG, READ_PNG, and WRITE_PNG can now handle PNG files up to 2 Gb in width or height, and unlimited size overall.

64-bit GZIP and ZIP Files

FILE_GZIP and FILE_GUNZIP now support huge files larger than 4 Gb. FILE_ZIP and FILE_UNZIP now support huge files larger than 4 Gb, including files in the ZIP64 format.

ZIP Files with Extended ASCII Filenames

FILE_ZIP and FILE_UNZIP now support filenames that contain extended ASCII characters.

Library Updates


The 3rd party libraries listed below have been updated to these versions:

  • P4Eclipse 2021.2.2264919

  • curl 7.85.0

  • eclipse-temurin-jdk 17.0.4

  • eclipse-temurin-jre 17.0.4

  • ffmpeg 4.4.2

  • jackson-json-processor 2.13.4

  • libtiff 4.4.0

  • libxml2 2.10.2

  • openssl 1.1.1q

  • poco 1.12.2

  • sqlite 3.39.3

  • zlib 1.2.12

The following 3rd party libraries have been added:

  • None

The following 3rd party libraries have been removed:

  • None

See Also


What's New in IDL 8.8.2

What's New in IDL 8.8.1

What's New in IDL 8.8

What's New in IDL 8.7.3

What's New in IDL 8.7.2

What's New in IDL 8.7.1

What's New in IDL 8.7

What's New in IDL 8.6.1

What's New in IDL 8.6

What's New in IDL 8.5.1

What's New in IDL 8.5

What's New in IDL 8.4.1

What's New in IDL 8.4

What's New in IDL 8.3

What's New in IDL 8.2.3

What's New in IDL 8.2.2

What's New in IDL 8.2.1

What's New in IDL 8.2

What's New in IDL 8.1

What's New in IDL 8.0