X
75001

IDL 8.7 Release Notes

See the following sections:

Supported Platforms in IDL

Platform Hardware Operating System Supported Versions
Windows Intel/AMD 64-bit Windows 7 SP1, 8, 10
Macintosh Intel 64-bit OS X 10.10, 10.11 (El Capitan)
Linux Intel/AMD 64-bit Linux Kernel 2.6.32, glibc 2.12

  • Supported versions indicate that IDL was either built on the lowest version listed or tested on that version. You can install and run IDL on other versions that are binary-compatible.
  • IDL Help requires an HTML5-compatible browser.
  • An X-Windows manager is required for Macintosh. IDL was tested using XQuartz 2.7.11.
  • The Windows installer installs both the 32-bit and 64-bit binaries so that you can launch IDL in 32-bit mode on 64-bit Windows systems. You can find the 32-bit versions of IDL in the IDL program group under Windows Start > Programs > IDL x.x > 32-bit (where x.x is the IDL version).

New Routines and Features in IDL

This section lists the new routines and features that are available in this release.

ROUTINE_DIR Function

You can use the new ROUTINE_DIR function to get the fully qualified path to the calling routine, without the filename. This is useful when you want to open a data file that lives alongside your code.

Asynchronous Job Classes

The IDLAsync classes allow you to specify units of work to execute asynchronously outside the main IDL session. For a more detailed description, see the IDL Asynchronous Jobs topic in IDL Help.

  • IDLAsyncBridgeJob: Represents a unit of work to be done at some point in the future inside an IDL_IDLBridge.
  • IDLAsyncBridgeTaskJob: Allows the user to specify a single IDLTask that will be executed inside an IDL_IDLBridge.
  • IDLAsyncJob: Represents a unit of work to be done at some point in the future.
  • IDLAsyncJoin: Observes one or more IDLAsyncJob objects to know when they are done.
  • IDLAsyncQueue: Manages a collection of IDLAsyncJob objects that are to be executed at some point in the future.
  • IDLAsyncSpawnJob: Represents a unit of work to be done at some point in the future by spawning an external process to perform the work.
  • IDLAsyncSpawnTaskJob: Allows the user to specify a single IDLTask that will be executed by the TaskEngine.
  • IDLTaskJob: Provides an interface for any job that wants to run an IDLTask.

Other Updates

A new example has been added to the Images Gallery. The example shows how to read and display GOES-16 (GOES-R) data on a map projection.

The JOURNAL procedure has a new ALL keyword, which forces all informational messages (such as compile output and save/restore output) to be saved to the journal file.

On Windows, you can now set VIEWPORT_EVENTS=2 on WIDGET_DRAW to have the draw widege continously send events as the scroll bar is moved. This behavior was always true on Motif.

A revision key was added to all task files, so that users can keep track of task definition changes between versions. Because of this update to the task template, the task schema key is now idltask_1.1.

Backward-Compatibility Issues in IDL

None

Fixed Issues in IDL

IDL-69027: Index tab in IDL 8.x help can be slow Disabled the setting for partial word search so it does not start searching on every letter combination as you type in the index search field.
IDL-69670: The results of the bionomial function do not match a user's expectations Reworked BINOMIAL to use the IBETA algorithm.
IDL-69747: "idl" script from Mac OS X, Linux and Solaris MAKE_RT distribution is hard-coded to only work from original product install directory location Updated the startapp script so that if IDL_DIR is set, then the setting cannot be overridden.
IDL-69799: JSON_PARSE/SERIALIZE mismatch on Double values Updated JSON_SERIALIZE precision for type double, to add one more digit.
IDL-69845: RDPIX.pro is not working properly in IDL 8.6.1 Fixed
IDL-69834: 64-bit addressing problem Fixed
IDL-69876: IDL Image() function throws an error on 3-band pixel data when x/y coordinates are also specified and need to be reversed Changed to use Reverse(), after determining which dimensions are x and y and not bands. Updated IDLitVisImage::_SetData to have same fix.

Known Problems in IDL

All Platforms

IDLffVideoWrite cannot create animated GIFs Because of vendor issues in the ffmpeg library, IDLffVideoWrite cannot create animated GIF files. Use the WRITE_GIF routine instead.
IDL-42545: WIDGET_TREE drop event can cause IDL to crash if an error exists in the DRAG_NOTIFY callback routine If there is an error (such as an undefined variable) in the custom DRAG_NOTIFY callback routine, IDL may freeze or crash since the error halts execution in the child routine and IDL cannot return to the calling function.

Workaround
: Handle potential problems in the callback routine by including CATCH statements in your code. See the documentation topic "Responding to Drag Notifications (Callbacks)" for more information.
IDL-55393: Breakpoints in files opened via links, shortcuts, or alternate paths To improve performance, IDL always compiles the first version of a file it finds in its path. If you open a file in the editor and set a breakpoint, then compile from a version of the same file with a different path, IDL will not assume that the two files are the same. As a result, IDL will not stop at the breakpoint set in the second file. Alternate paths to the same file can be constructed via UNIX links, Windows shortcuts, mapped drives, or UNC paths.

Workaround: Make sure that the full path to the file in which you set the breakpoint is the same as the full path to the compiled file. If you use the IDL Workbench, compiling using the Workbench menus or toolbars will ensure that the same path is used for compilation and debugging.
IDL-49236: Deleting a project or directory within a project while the project is open causes exceptions when the Workbench exits When a project file or a directory within a project is deleted from outside the Workbench (for example, from Windows Project Explorer) while the project is open, a warning message may be issued while the Workbench is still running. An exception may occur on exiting the Workbench.
IDL-51318, IDL-51322: Formatter preferences for keywords and class names are ignored by the Source > Format command The keyword and class name formatting preferences set on the IDL Formatter preference page are not applied when the code is highlighted and the Source > Format command is selected.
IDL-58532: Default UTF-8 encoding is corrupting .pro files with non-English characters Non-English characters are converted to symbols when imported into the IDL Workbench. Importing a .pro file containing non-English characters in IDL permanently corrupts the file with bad characters.

Workaround: Before opening a file or before saving an open file, change the file encoding to ISO-8859-1 for Spanish or German, or to Shift-JIS for Japanese.

To change the encoding for an individual file, open the file in an IDL editor, then select File > Properties. In the Resources dialog box, change the Text file encoding preference.

To change the default encoding preference for IDL, select Window > Preferences. In the Preferences dialog box, choose General > Workspace. Change the Text file encoding preference.
IDL-57214, IDL-58285, IDL-58839: IDL Crashes occur on Macintosh and UNIX when performing graphics operations where GL drivers are present Possible workaround: Rename the gl_driver.so file (located in bin\bin.<platform>) to gl_driver.ba.
IDL-60473: Accessing Preferences while IDL is busy may hang the Workbench Trying to change Preferences while IDL is busy (for example, when a lengthy command is being executed) may cause the Workbench to hang.
IDL-63902: Using the IDL_Java Bridge causes the Workbench to ignore the current directory in CLASSPATH Workaround: Copy the .class file to any other directory explicitly listed in CLASSPATH.
IDL-69848: The COLORBAR function issues an error when used with the CONTOUR function The COLORBAR function does not behave as expected when used with CONTOUR. The labels, values, ticks, and colors seem to not work properly with the keywords and options.
IDL-69817: In the Workbench, changing directory via CD clears the outline view of an open IDL source file If you enable the Outline view, then in Project Explorer, right click on a different folder in the same project and select "Set Selection as Current Working Directory," the outline view of the open source will be erased.
IDL-69856: Issuing .RNEW after compiling a procedure causes IDL/IDLDE to crash  
IDL-69885: SCALE_FACTOR does not go back to 1.00 after being set to a value less than 1.00 If you display an IMAGE in a WIDGET_WINDOW, set the SCALE_FACTOR to a number less than 1.0, and then reset 1.0, the resulting SCALE_FACTOR will not be 1.0.

Macintosh Platforms

IDL-60599: On Macintosh OS, only one Workbench instance can run at a time Even if the preference "Prompt for workspace on startup" is set and multiple workspaces are available, only one instance will run.

Workaround: Run the Workbench from the init script located in the idlde.darwin.x86_64.app/Contents/MacOS directory of your IDL installation.
IDL-64149: Widget interface loses focus when selection is made in a drop-down list Workaround: In X11 Preferences, enable "Click-through Inactive Windows."
IDL-67319, IDL-67320: Graphics rendering causes memory and device errors XQuartz version 2.7.2 causes these error messages when creating IDL Graphics. When IDL is installed, the Macintosh operating system may direct you to install the most recent version of XQuartz.

Workaround: Use the latest version of XQuartz.
IDL-68845: Launching the IDL Workbench on Macintosh may prompt installation of Java v1.6 If you launch the IDL Workbench on Macintosh without first having Java v1.6 installed, the Macintosh OS may prompt you to install it first. This will happen even though IDL includes Java v1.8. For more information on this issue, please see: http://stackoverflow.com/questions/11919004/eclipse-4-2-mac-os-x-10-8-ml-and-java-6

Workaround: Install the Macintosh version of Java 1.6 when prompted. The Workbench will continue to use Java v1.8 as it was installed with IDL. Another workaround is to add a softlink as sudo from Frameworks 1.6 -> 1.7 as described in the link above.
IDL-69858: IDL Workbench menus disabled on Mac OS X 10.13 (High Sierra) in non-English mode All menus in the IDL Workbench are greyed out on Mac OS X 10.13 (High Sierra).

Windows Platforms

IDL-48454: WIDGET_TIMER can cause applications to freeze until an event is sent to the application WIDGET_TIMER events fail after 10 events. This problem happens in the following cases:

  • Timer events are chained together by setting the next timer within the handling of the current timer and before the "work" section of the event handler is performed.
  • The next timer goes off during the current timer event processing (for example, during a lengthy calculation).
Workaround: Chain timer events by setting the next timer after any computations are completed. For smoother performance, set the next timer based on how long the computations execute, which accounts for variances in machine speed. For example, to fire the timer once every second, set the next timer to 1.0 - (time to perform computation)
IDL-49641: Updating edited variable values is slow While IDL is busy or blocking If you edit a variable value using the IDL Workbench Variables view while IDL is busy (for example, when a lengthy command is being executed, or when a widget application is blocking), it may appear that the variable is not being updated. The new variable value is displayed when IDL is no longer busy. (Related to ID 49604.)
IDL-61842: IDL on Windows 7 may have unpredictable behavior when using graphics The cause may be graphics cards that are unsupported in Windows 7. Please see a list of supported graphics cards on the Microsoft.com website. You may want to upgrade your graphic driver or switch the IDL Graphics preference to use software rendering.
IDL-66357: Installing into a directory named with multibyte characters may cause the IDL Workbench to not launch If you are installing IDL into a directory that contains multibyte characters, path names in the idlde.ini file may be truncated.

Workaround for 32-bit systems: In the  <install_dir>\IDLxx\bin\bin.x86\idlde.ini file, edit the following lines:

Line 2 should read:

<install_dir>\IDLxx\bin\bin.x86\jre\bin


Line 14 should read:

Dosgi.sharedConfiguration.area=<install_dir>\IDLxx\bin\bin.x86\configuration


Workaround for 64-bit systems:

In the <install_dir>\IDLxx\bin\bin.x86_64\idlde.ini file, edit the following lines:

Line 2 should read:

<install_dir>\IDLxx\bin\bin.x86_64\jre\bin


Line 14 should read:

Dosgi.sharedConfiguration.area=<install_dir>\IDLxx\bin\bin.x86_64\configuration
IDL-66363: Executable for a C++ project that Uses COM_idl_connect.tlb needs to be in the \bin directory to run If you create a C++ project that uses COM_idl_connect.tlb, the .exe must be installed in <install_dir>\bin\bin.x86 or <install_dir>\bin\bin.x86_64 to run. Alternatively, you can add the install path to the PATH environment variable.
IDL-69849: Writing a large JPEG2000 file can cause IDL to crash  
IDL-69852: GOES-R projection does not fill properly with the MAP function  
IDL-69854: WV_CWT does not support any discrete wavelet families The IDL continuous wavelet transform WV_CWT function does not support discrete wavelet families, such as HAAR and SYMLET.
IDL-69860: NCDF_GET returns wrong dimensions in case dimensions are odd When using NDCF_GET to retrieve the dimensions of variable #1 of a NetCDF 3 file which has odd dimensions, IDL returns the dimensions of variable #2.
IDL-69870: Latest Windows 10 updates breaks saved IDL graphic text Windows 10 Version 1709, released 10/18/17 causes problems when saving IDL graphics to files. The entire text box is colored in.
IDL-69873: IDL Workbench 64-bit Fails to launch for non-admin users on Windows 10 where Linux BASH is active If a machine has a Linux subsystem active on Windows 10, the 64-bit Workbench of IDL can fail to run for non-admin users. The workbench will open, but it will hang (and say "not responding"). No information loads in the IDL console.

UNIX Platforms

IDL-14221, IDL-30564: DIALOG_PRINTERSETUP Causes IDL to hang when called from a modal widget This is a known problem with no known workarounds except to use DIALOG_PRINTERSETUP with a non-modal widget.
IDL-41964: IDL does not run in security enhanced Linux Some recent versions of Linux implement mandatory access control in the Linux kernel using the Linux Security Modules framework. IDL will not run in such an environment without a modification to the security context for the IDL binaries.

Workaround: Either disable SELinux or modify the default security context for IDL. See Help Article 3092 for details.
IDL-43301: The upper left corner of a tree widget is never a valid drop zone When the ability to drag and drop tree widget nodes has been enabled, the UNIX tree widget does not recognize the upper left corner of the widget as a valid drop zone. This area typically extends over the icons of the first two nodes (but not the labels). This is a vendor issue. You can drop items onto the first two nodes by moving the cursor over the labels instead of the icons.
IDL-55427: IDL Dataminer requires the latest libstdc++ Third-party libraries used by the IDL Dataminer module require a library that may not be available by default on some newer Linux systems. Attempting to run the IDL Dataminer may cause IDL to issue an error similar to the following:

% DLM_LOAD: Error loading sharable executable. Symbol: IDL_Load, File =/rsi/qa/unix/idl71/bin/bin.linux.x86_64/idl_dataminer.so libstdc++.so.5: cannot open shared object file: No such file or directory

You will need to install the appropriate libstdc++ compatible library for your platform.
IDL-57381: Missing 64-bit library IDL requires a 64-bit version of libXp. Red Hat-based Linux distributions such as RHEL and Fedora may not install this library by default. On Red Hat you can obtain this library using the following command:

yum install libXp.x86_64
IDL-58106: DIALOG_PRINTERSETUP crashes on Linux 64-bit running in the Workbench Calling DIALOG_PRINTERSETUP from the Workbench causes 64-bit IDL to crash.

Workaround: To set up a printer, launch IDL in command line mode and run DIALOG_PRINTERSETUP. Once you have set up a printer, the information is cached in your home directory. Then printed IDL programs will go to the appropriate printer regardless of whether you are running the Workbench or command line IDL.
IDL-58460: IDL graphics cause crash in Ubuntu versions of UNIX Recent versions of Ubuntu and other Debian-based Linux distributions may not ship with the libstdc++.so.6 library, which is required by Xerces. You will need to download this library and install it in the /bin/bin.linux.x86 directory of your IDL installation. (On 64-bit installations, this directory is /bin/bin.linux.x86_64.)
IDL-59497: IDL graphics may fail with software rendering on Linux IDL graphics in the Workbench in software rendering mode may fail on Linux machines if the display is local and Xinerama is not enabled.

Workaround: Configure Xinerama on the system or run from the IDL command line.
IDL-68960, IDL-68965: Java-IDL Bridge with drawable Windows may not render properly with software rendering When using the Java-IDL Bridge with drawable windows and software rendering, the window may not display anything. Note that this affects the example code in the IDL documentation (IDLWindowExample.java and IDLgrWindowExample.java).

Workaround: If nothing appears in the drawable window, change to hardware rendering by setting your drawable object's RENDERER property to zero (i.e., RENDERER=0).
IDL-69332: Selecting the Help preference can crash the IDL Workbench on some Linux systems Selecting Window > Preferences > Help on some Linux systems may cause the IDL Workbench to crash.

Workaround: Open the idlde.ini file and find the -vmargs line. Add the following new line after the -vmargs line:

-Dorg.eclipse.swt.browser.DefaultType=mozilla.