IDL 8.8.3 Release Notes

Refer to the IDL Help for instructions on using the tools and API. Access the help by selecting Help > Help Contents from the IDL menu bar. Then click "IDL" in the table of contents on the left side of the help page.

See the following sections:

See Platform Support for ENVI 5.6.3 and IDL 8.8.3 for additional details.


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.




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 has a new NULL keyword, which will return !NULL if there are no filename matches.




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.




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.




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.




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 ILE_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.

Backward-Compatibility Issues

As of IDL 8.8.2, IDL uses Java 17. If you had Java 8 code in your previous version of IDL, you may need to recompile using Java 17.

Fixed Issues

  • IDL-69692: JULDAY and CALDAT were returning slightly inaccurate results - added MODIFIED keyword
  • IDL-69844: TEXT graphic was taking a very long time to render large number of inputs
  • IDL-69902: FILE_GUNZIP failed to read more than 4GB into a variable with BUFFER keyword
  • IDL-69913: I18N:FILE_ZIP didn't handle extended ascii characters correctly
  • IDL-69970: FILE_UNZIP was causing an error with Sentinel 2 data
  • IDL-70263: MAKE_RT was failing on Mac due to permissions on activate
  • IDL-70598: FILE_ZIP was not compressing folders correctly
  • IDL-70683: Java->IDL Export Bridge didn't support licensing modes in IDL 8.6+
  • IDL-70774: FORMAT keyword had a memory leak
  • IDL-70804: WIDGET_PROPERTYSHEET was segfaulting IDL on Ubuntu 18+ & RHEL/Centos 7.9+
  • IDL-70805: When unpacking a .tgz file using FILE_GUNZIP, the size was growing rapidly.
  • IDL-70806: IDL’s FILE_UNTAR routine did not support subdirectories.
  • IDL-70842: .edit Editor tab focus behaved unexpectedly when another program is at a STOP
  • IDL-70865: Screen size and resolution returned by IDLDE and IDL command line were not the same
  • IDL-70866: IDL interpreter was halting at the wrong place after list/hash calls
  • IDL-70872: WIDGET_SLIDER default scroll wheel action was 3 units on Linux, when it used to be 1
  • IDL-70873: Could not execute MAKE_RT application from app on macOS Monterey
  • IDL-70902: Executing anything in IDL Workbench console while stopped at breakpoint caused editor to jump back to breakpoint
  • IDL-70903: WRITE_PNG should not be 32-bit limited --- could not write more than ~700 megapixels
  • IDL-70904: An array contained by a hash could not be properly subscripted
  • IDL-70908: With MacOS firewall enabled, user needed to "allow" IDLDE on every launch
  • IDL-70911: COM->IDL Export Bridge didn't support licensing modes in IDL 8.6+
  • IDL-70912: Implied print with floats produced invalid JSON
  • IDL-70918: .RUN was not working correctly in IDL 8.8.2
  • IDL-70930: HIST_EQUAL was returning incorrect results for values on the edge of the scale range
  • IDL-70938: IDL was crashing with LISTS and SAV files with structures containing null strings

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

Known Issues

Help Display on macOS

Using the IDL Help System on macOS with the Safari web browser results in the error "The operation couldn't be completed," or it displays a blank page. By default, Safari prohibits some local file operations; the error occurs when a temporary HTML file auto-created by the Help system attempts to perform a redirect to the specific IDL Help content. There are two workarounds to display the Help:

  • In Safari, enable the Disable Local File Restrictions setting.
  • If you prefer not to disable local file restrictions in Safari, use Chrome or Firefox as your browser to open IDL Help content.

Remotely Accessing IDL Help on Linux with Firefox

Accessing IDL Help remotely using Firefox on a Linux environment (X Window Server through Windows-MobaXterm/Mac-XQuartz) can cause a core dump crash under these circumstances:

  1. The default browser of the remote connection destination is NOT Firefox, but Firefox is set in the IDL_HELP_BROWSER environment variable on the local machine.
  2. The idlhelp command is issued.

Use one of the following workarounds:

  • Before issuing the idlhelp command, start Firefox on the local machine.
  • Use the L3Harris Documentation Center.
Please login or register to post comments.