IDL 8.7.1 Release Notes

This help article contains release notes for IDL 8.7.1. See the following sections:

Supported Platforms

Refer to Platform Support for ENVI 5.5.1 and IDL 8.7.1.

Supported Third-Party Software

  • Python no longer supports version 3.4 as of March 2019; therefore, Python 3.4 support has been removed from IDL. See the following website for Status of Python branches: https://devguide.python.org/#status-of-python-branches.
  • Removed the IDL_DrawX3.ocx Draw Widget ActiveX control component, which was deprecated in IDL 7.

New Features

This section lists the new and updated features for IDL.

Note: You can update to IDL 8.7.1 from the previous release without needing to reactivate your license entitlement. We have resolved a number of licensing issues in this release, and we want to share the new features and those improvements in a seamless manner. 

IDL Machine Learning

The new IDL Machine Learning framework provides a powerful and flexible way to run machine learning applications on numerical data. You can create and train models and apply them in classification, clustering, or regression. For example:

  • IDLmlAutoEncoder implements an autoencoder model that can be used for clustering purposes.
  • IDLmlFeedForwardNeuralNetwork implements a Neural Network model that can be used for classification purposes.
  • IDLmlKMeans implements a K-means model that can be used for clustering purposes.
  • IDLmlSoftmax implements a Softmax model that can be used for classification purposes.
  • IDLmlSupportVectorMachineClassification implements a Support Vector Machine model that can be used for classification purposes.
  • IDLmlSupportVectorMachineRegression implements a Support Vector Machine model that can be used for regression purposes.

For a complete list with links to all of the functions and classes of the framework, see the IDL Machine Learning topic in IDL Help. For details on how to get started with IDL Machine Learning, see the IDL Machine Learning Framework topic.

IDL Package Manager

The IDL Package Manager (IPM) allows you to create, install, update, and remove IDL packages. IDL packages are a collection of files and/or folders that are compressed into a ZIP file; they can contain any combination of IDL pro code, IDL save files, and/or IDL DLMs, and they contain an idlpackage.json file that describes the package. Packages are installed to the directory defined by the new IDL_PACKAGE_PATH preference, and the IDL path is automatically updated to include the new files.

The following libraries are available to be consumed:

Library IPM Command to Install
IDL-Motley ipm, /install, 'https://github.com/hadfieldnz/idl-motley'
IDL-ROMS ipm, /install, 'https://github.com/hadfieldnz/idl-roms'
IDL-Salvaggio ipm, /install, 'https://github.com/csalvaggio/IDL_RIT_Salvaggio'
IDLdoc ipm, /install, 'http://packages.idldev.com/idldoc.zip'
Mankoff ipm, /install, 'https://github.com/mankoff/kdm-idl'
mglib ipm, /install, 'http://packages.idldev.com/mglib.zip'
mgunit ipm, /install, 'http://packages.idldev.com/mgunit.zip'


The CW_COLORGRADIENT function creates a compound widget to create color palettes built as gradients interpolated between a series of user-defined colors.


The DIALOG_COLORGRADIENT function allows you to interactively define a color table as a gradient interpolated between a series of user-defined colors.

Other Updates

  • The ARRAY_EQUAL function has a new DIFFERENT_LENGTHS keyword, which allows comparing arrays of different sizes on the common indices. It also has a new NAN keyword, which treats NaN values as being equal.
  • A TAGS property was added to IDLTask to help categorize tasks. Because of this update to the task template, the task schema key is now idltask_1.2.
  • The JSON_PARSE function performance has been improved. Performance improvements will be most noticeable when parsing larger files, where the process will be up to 10 times faster.

Library Updates

  • The IDL Python bridge now supports Python 3.6.6, 3.5.6, and 2.7.15.
  • The IMSL library has been updated to version 2016.1.0.
  • The JRE library has been updated to version 1.8.0_181.
  • The libcurl library has been updated to version 7.61.0.
  • The MrSID library has been updated to version
  • The OpenSSL library within cURL has been updated to version 1.1.0h.
  • The SQLite library has been updated to version 3.24.0.
  • The Xerces library has been updated to version 3.2.1.

Backward-Compatibility Issues


Fixed Issues

IDL-69561 Black boxes appeared where axis text should be on the save PLOT images on some Windows 10 systems.
IDL-69851 The "-V" flag on .COMPILE was undocumented.
IDL-69870 Saved IDL graphic text was not working properly in the latest Windows update.
IDL-69931 The Python to IDL Bridge was failing with the latest version of Anaconda 3 on Mac OS X 10.13.2.
IDL-70099 The WIDTH keyword documentation for the BOXPLOT function was incorrect.
IDL-70167 The LEGEND() function would cause an error if the LABEL keyword was a string array.

Known Issues

IDL-69803 Add a way to retrieve a widget_table value without having to use the Tab or Enter keys.
IDL-69858 All IDL Workbench menus are greyed out and disabled on Mac OS X 10.13 (High Sierra) in non-English mode. This is an Eclipse issue. Workaround: Please see the Eclipse website for three workarounds at https://www.eclipse.org/org/press-release/20170925criticalbug.php.
IDL-69873 IDL Workbench 64-bit does not launch for non-administrative users on Windows 10 when Linux Bash is active. 32-bit IDLDE, and 32-bit and 64-bit command line work. Workarounds: Deactivate Bash, or run IDLDE in 32-bit.
IDL-69919 IDL .SAV files built in IDL 8.6.1 or older are failing. This occurs from LIST::ADD issues if a user is running IDL 8.7 and loads a .SAV file that contains list__define from an older version of IDL.
IDL-70097 ASSOC function performance is significantly slower on some machines running recent Mac versions of Mac OS X 10.13.
IDL-70142 IDLDE crashes some machines running Mac OSX 10.13.4 or 10.13.5 when highlighting 15 or more lines of text in the editor.
IDL-70161 When ENVI+IDL is running, typing .FULL_RESET at the command line and then starting ENVI will cause IDL to crash. Workarounds: Use .RESET instead of .FULL_RESET to avoid the crash, or shut down and restart IDL.
Please login or register to post comments.