Previous What's New in IDL 6.4 Next

IDL 6.4 Release Notes


Note
Visit www.ittvis.com/IDL for additional information and late-breaking release notes.

The information found in these release notes is separated into the following sections:

ID numbers are included where applicable to allow ITT Visual Information Solutions to respond to inquiries more easily.

New Features in IDL 6.4

For information on new features in this release, see the What's New in IDL 6.4 manual. What's New is included as part of the IDL online help system.

back to top

Backward-Compatibility Issues in IDL 6.4

All Platforms

ID
Description
38745
IPLOT: TRANSPARENCY keyword renamed FILL_TRANSPARENCY
IDL 6.4 added the ability to control transparency via a command-line keyword to the iTool launch routines (IPLOT, IIMAGE, etc.) Prior to IDL 6.4, the IPLOT routine had a TRANSPARENCY keyword, but it controlled the transparency of the plot fill color, not of the plot line itself. For consistency with the other iTool launch routines, the keyword used to control the plot fill transparency has been renamed FILL_TRANSPARENCY, and the TRANSPARENCY keyword now controls the transparency of the plot lines and symbols themselves. If you have existing code that uses the TRANSPARENCY keyword to IPLOT, it will no longer behave as it did in IDL 6.3 and earlier; to achieve the same results, use the FILL_TRANSPARENCY keyword.
44817
CDF_EPOCH16 keyword to CDF_VARCREATE is misnamed
In IDL 6.3, the new CDF_EPOCH16 keyword to the CDF_VARCREATE function created a conflict with the existing CDF_EPOCH keyword. In IDL 6.4 and later, the keyword is named CDF_LONG_EPOCH, alleviating the conflict.
45651
UUID property of IDLffJPEG2000 object returns incorrectly formed array
Prior to IDL 6.4, the UUID property of an IDLffJPEG2000 object contained an n x 16 byte array, where n is the number of UUID boxes that contain data. In IDL 6.4 and later, the UUID property contains a 16 x n array.
47137
iTools: IDL Standard Style now automatically created
Prior to IDL 6.4, the iTools style "IDL Standard" was included in the IDL distribution as an IDL SAVE file. Beginning in IDL 6.4, this style, which reflects the default values for all visualization properties, is created dynamically by the iTools system. As a result, the "IDL Standard" style is not available until an instance of an iTool is created.

back to top

Windows Platforms

ID
Description
n/a
Desktop shortcuts are no longer created by the installer
The IDL installation program no longer creates shortcut icons on the Windows desktop. If you prefer to launch IDL from a desktop shortcut, you can create one manually from the idlde.exe executable file located in the bin\bin.x86 or bin\bin.x86_64 directory of your IDL distribution.

back to top

UNIX Platforms

ID
Description
46846
Building RPC and callable IDL examples on Linux platforms
On Linux platforms, IDL is built against version 2.2.3 of the Motif library. This resolves known problems in version 2.2.2 of the library that affect IDL widgets. When building RPC or Callable projects on Linux platforms, you must link against a Motif 2.2.3 library. See the Makefiles for the Callable and RPC examples for details.

Macintosh Platforms

ID
Description
n/a
IDL icons are no longer created in the doc by the installer
The IDL installation program no longer places an icon in the dock or on the desktop. If you prefer to launch IDL from the dock or desktop, you can manually create a copy of any of the IDL icons by dragging the icon from the IDL installation folder.

back to top

Problems Corrected in IDL 6.4

All Platforms

ID
Description
41951
IMAP: Setting SEMIMAJOR_AXIS, SEMIMINOR_AXIS, or SPHERE_RADIUS Does Not Work
Prior to IDL 6.4, setting the SEMIMAJOR_AXIS, SEMIMINOR_AXIS, or SPHERE_RADIUS keywords with the IMAP procedure did not change the Ellipsoid(datum) property to User Defined. This problem has been corrected.
42086
IDL_Container::Get(/ALL, ISA=) method removes null objects
Prior to IDL 6.4, calling the IDL_Container::Get method with the ALL and ISA keywords set would remove any null object references from the specified container object. Null objects now remain in the container after the call to the Get method.
42547
Text Widgets Do Not Generate Tab Events
In IDL 6.2 and 6.3, text widgets did not generate keypress events when the Tab key was pressed. Now, multi-line text widgets once again insert the tab character and generate keypress events when the Tab key is pressed on all platforms.
On Windows platforms, single-line text widgets generate keypress events when the Tab key is pressed if the value of the TAB_MODE keyword is not 1 or 3 (indicating that users can "tab out of" the widget). On Motif platforms, single-line text widgets never generate keypress events when the Tab key is pressed. Tab characters are not inserted into single-line text widgets.
43166
IDLanROI::ComputeMask Returns Incorrect Results in Some Situations
Prior to IDL 6.4, when a region of interest (IDLanROI object) lies outside of a region specified by the LOCATION and DIMENSION keywords, the ComputeMask method returned incorrect results. This problem has been corrected.
43623
IDLgrROI contained by an IDLgrROIGroup reports a null object PARENT
Prior to IDL 6.3, an IDLgrROI object contained by an IDLgrROIGroup object reported that its PARENT was a null object. IDL now reports the correct parent object.
43758
Export Bridges: Incorrect Notification of Virtual Machine Mode
In IDL 6.3, the LMGR function with the VM keyword returned an incorrect value when called through the COM or Java export bridge. The LMGR function now returns the correct value in all cases.

back to top

Windows Platforms

ID
Description
46035
Inconsistent display of TrueColor images with TV when DECOMPOSED=0
In previous releases, when a TrueColor image was displayed on a TrueColor Windows display using indexed color mode (that is, with the DECOMPOSED keyword to the Win device set equal to zero), each channel of the image was passed through the current color table before display. This behavior differed from that of the X and Z-buffer devices. In IDL 6.4 and later, TrueColor images are always displayed using decomposed color mode, regardless of the value of the DECOMPOSED keyword for the current device.

back to top

Known Problems in IDL 6.4

All Platforms

ID
Description
40768
Firewall Can Catch the IDL-IDL Assistant Socket Communication
IDL and IDL Assistant (the online-help viewer) communicate via sockets, and some firewalls might question this communication. IDL is not trying to access the Internet; the communication is strictly between IDL and IDL Assistant. If prompted to allow or deny the communication, you should allow it; otherwise, you will not be able to see or use IDL's online help. You might need to configure your firewall software to allow the communication.
42545
WIDGET_TREE Drop Event Can Cause IDL to Crash if an Error Exists in the DRAG_NOTIFY Callback Routine
A tree widget can be configured to support drag and drop functionality. This functionality includes a callback to either the default callback routine, which provides information about where a node can be dropped, or a callback to a custom callback routine that is specified using the DRAG_NOTIFY keyword. In either case, the parent WIDGET_TREE function calls the child callback routine and the IDL processing focus switches to the callback routine. If there is an error (such as an undefined variable) in the custom callback routine, IDL may freeze or crash since the error halts execution in the child routine and IDL is unable to return to the calling function.
Workaround: Handle potential problems in the callback routine by including CATCH statements in the code you are developing. See the documentation topic "Responding to Drag Notifications (Callbacks)" for more information.
43054
Java Export Bridge: Hardware Rendering Not Supported By All Video Cards
When running IDL applications through the Java Export Bridge, some video cards on some systems experience problems that prevent them from rendering graphics properly. As a result, the Java Export Bridge creates applications that use IDL's built-in (software) renderer by default. Even systems that use hardware rendering successfully when running IDL itself can experience the problem when running the Java Export Bridge.
Workaround: If you know that the target system for your application will display graphics properly using hardware rendering, you can explicitly set the renderer in the Init method for your application. Since a graphical application must inherit (directly or indirectly) from the IDLgrWindow class, you can set the RENDERER property equal to 0 to force the use of hardware (OpenGL) rendering if it is available. Note that the RENDERER property is not exported by the Export Bridge Assistant; the value must be hard-coded in your IDL object code.
43116
Text Annotations Added During Macro Creation Are Incorrectly Placed or Missing
The iTools let you create a macro that records the operations that occur within a visualization window. If you add a text annotation during macro recording and close the annotation operation by clicking on the view instead of pressing the Enter key, an additional translation event is added to the macro. This causes the text annotation to be incorrectly placed when you run the macro.
Workaround: Always close the creation of a text annotation by pressing the Enter key (instead of by clicking on the view) when recording a macro in an iTool window.
43599
A 32-bit Application Cannot be Built On 64-Bit Linux
It is not possible to use 32-bit libraries on a 64-bit Linux machine to build a 32-bit Callable IDL application.
Workaround: Build a 32-bit application on a 32-bit machine.
43733
Connectivity Bridges: Dialog Windows May Appear Behind the Main Application Interface
Dialog windows that are launched from a child IDL_IDLBridge process, or other background process such as an Export Connectivity Bridge wrapper object may appear behind the current application interface and be completely hidden. The background process has no way to force a dialog to appear in the foreground.
43808
Export Bridges: IDL Error Codes May Change Between Releases
Both the COM and Java Export Bridges allow you to catch and respond to errors generated by IDL. Errors are returned from IDL in the form of error codes, corresponding to the value of the !ERROR_STATE.CODE system variable field.
The code used to designate a specific IDL error condition can change from one release of IDL to another. As a result, COM or Java code you write that reacts to a specific error code value may behave differently with different IDL releases.
43843
Connectivity Bridges: No Warning of Syntax Errors
When using the Export Connectivity Bridge or the IDL_IDLBridge, any warnings generated by IDL or by user code via the MESSAGE routine with the /CONTINUE keyword will not update the !ERROR_STATE system variable.
Workaround: To see debugging information including errors and warnings:
  • For the IDL_IDLBridge, use the Status method (asynchronous mode only).
  •  

  • For the IDL_IDLBridge, either use the IDL_IDLBridge OUTPUT property (synchronous or asynchronous mode).
  •  

  • For the Export Connectivity Bridge, set the IDL_BRIDGE_DEBUG environment variable.
43850
Java Export Bridge: Error if Non-Drawable Object Instantiated First
If you create a Java application that incorporates both drawable and non-drawable IDL wrapper objects, instantiating the non-drawable object before the drawable object will cause a runtime error that looks something like:
Exception in thread "main" java.lang.UnsatisfiedLinkError: Native Library 
path_to_your_AWT_library already loaded in another classloader  
Workaround: Create an instance of a drawable wrapper object first. This will initialize the Java export bridge correctly, allowing both drawable and non-drawable wrapper objects to execute properly.

back to top

Windows Platforms

ID
Description
40851
WIDGET_DRAW WHEEL_EVENTS Can Arrive Out of Sequence of Other Draw-Widget Events
The draw widget delivers scroll-wheel events to the IDL event queue when it gets the wheel event from Windows. The draw widget cannot know whether events are arriving late from Windows. This is not an IDL problem.
If you want to take advantage of the new scroll-wheel functionality, you might want to ensure that you have a robust scroll-wheel-enabled mouse driver. Check your mouse's documentation for more information.
41969
ION Script Running under IIS Locks Up
In some cases, ION Script may "lock up" when running in the Microsoft Internet Information Server (IIS) web server. The problem occurs when IDL does not have permission to create files in the .idl directory.
Workaround: Ensure that the directory specified by the system environment variable HOME is writeable. Note that the value of the user environment variable HOME is not used by the web server.
To set the system environment variable:
1. Open the Environment Variables control panel.
2. Select the HOME environment variable from the "System variables" section. If the environment variable does not exist, create it.
3. Ensure that the directory specified by the HOME environment variable is writeable.
4. Click OK.
42359
Incompatibility Between IDL and Microsoft Intelli-Mouse with Fingerprint Reader
If you are using the Microsoft Intelli-Mouse with Fingerprint Reader on the system that runs IDL, IDL may close unexpectedly in some cases.
Workaround: Shut down the Digital Personal Password manager software that comes with the Microsoft Intelli-Mouse.
43542
Some Fonts Do Not Display Correctly in the Editor Window of the IDL Development Environment
Some multi-byte fonts are not correctly displayed in the IDLDE editor window.
Workaround: For users running Windows XP, you can install and launch IDL using the Microsoft AppLocale utility (download from http://www.microsoft.com/globaldev/tools/apploc.mspx). This application localization utility provides a way to correctly display multi-byte fonts in IDL as long as Language for non-Unicode programs item is not set to the operating system language. For example, if running IDL on Japanese Windows XP SP2, you would need to change the language option to something other than Japanese. You could make the following change:

Select Control Panel Regional and Language Options Advanced tab Language for non-Unicode programs English (United States).

44171
COM Export Bridge: 64-bit Integers Not Supported under Windows 2000
On Windows 2000 systems, some intrinsic COM functions (such as VariantCopy) do not support the use of 64-bit values. Microsoft .NET languages define the Long dataype as a 64-bit integer and the Integer datatype as a 32-bit integer. If a .NET application explicitly defines a value as a Long, and passes this value to one of the intrinsic COM functions that do not support 64-bit values on a Windows 2000 system, the application will fail.
Because IDL defines a Long as a 32-bit integer, an IDL programmer may be tempted to use the Long datatype in both IDL and .NET code. This may cause .NET applications using the COM Export Bridge to fail on Windows 2000 systems.
Workaround: Use the Integer datatype in .NET code to contain an IDL Long value.
46816
Installation Program Failures: Error 1719
On some systems, the IDL installation program may exit with the following error:
Error 1719.Windows Installer service could not be accessed.  Contact your 
support personnel to verify that it is properly registered and enabled.  
Workaround:
Restart the IDL installer. If installation still fails, reboot the computer and restart the installer.
Background:
This error occurs when the Microsoft installer engine is older than the version required by the IDL installation package. In this situation, the IDL installer updates the installer engine. In some cases, the installation procedure may be able to proceed; in others (most notably on Windows 2000 systems), a restart of the installer or of the operating system may be required.

back to top

UNIX Platforms

ID
Description
30564
DIALOG_PRINTERSETUP Causes IDL to Hang When Called from Modal Widget
This is a known problem with no known workarounds except to use DIALOG_PRINTERSETUP with a non-model widget.
31586
Switching Tabs Too Often on a Tab Widget on IRIX Leads to Eventual Event Mishandling
IRIX seems to have a very small limit of "tab switch events" that it can process correctly in a single IDL session before clicking-on-a-tab events start to be handled incorrectly. This problem occurs on IRIX only.
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 make a modification to the default security context for IDL. See Tech Tip 3092 for details.
42609
WIDGET_BUTTON Bitmaps Not Found in Resource Directory
Using the VALUE keyword of WIDGET_BUTTON lets you specify the name of a bitmap image file to be used as the button label. On UNIX, this bitmap file is not being located in the IDL_DIR/resource/bitmaps directory and causes a "Can't open bitmap file" error. This occurs when only the name of the file (and not a complete path) is given. On Windows, a bitmap file identified by name only is correctly located.
Workaround: Always specify the complete path to the bitmap file. For example, to use the arrow.bmp file, you could use FILEPATH as follows:
   bmpath = FILEPATH('arrow.bmp', SUBDIRECTORY=['resource', 'bitmaps'])  
   b = WIDGET_BUTTON( tlb, VALUE=bmpath, /BITMAP)  
42641
Error May Occur After First Launch of IDL Assistant with Root Privileges
If you receive the following error after the first use of the IDL Assistant (the online-help viewer), "QSetting::sync: filename is null/empty," the problem is most likely due to file permissions.
Workaround: Change the ownership on the .qt and .assistant folders and files in your home directory:
   chown -R <user> .qt  
   chown -R <user> .assistant  
where <user> is your user name.
43301
Upper Left Corner of Tree Widget is Never 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 mouse cursor over the labels instead of the icons.
44823
Launching IDLDE causes X Protocol Errors
When launching the Motif IDL Development Environment, the following error is displayed on some systems:
% Internal error: attempt to pop too many output functions in tout.  
followed by one or more that look like:
% X windows protocol error: BadAlloc (insufficient resources for operation).  
Workaround:
These protocol errors are completely harmless and can safely be ignored. The only ill effect is that some scrollbars and/or other GUI widgets/gadgets may not draw as expected.
Background:
The errors occur on systems that have installed a patch to the X server software that addresses a security vulnerability due to integer overflow when working with the dimensions of a pixmap during its creation. On Solaris systems, the patch is 112785-52. We assume that this patch will find its way into various Linux distributions as well. Since the patch fixes a security vulnerability and its impact on IDL is minor, we recommend leaving the patch installed.
46672
Using WAIT with IDLffMJPEG2000 on Solaris 10 causes IDL to freeze
On Solaris 10 systems, using a WAIT statement in code that calls IDLffMJPEG2000 object methods may cause IDL to freeze.
Workaround:
Use a widget timer to generate WIDGET_TIMER events in place of WAIT to control the flow of execution. For an example using a widget timer to control the frame rate of displayed frames, see IDL_DIR/examples/doc/objects/mj2_timer_doc.pro, where IDL_DIR is the location of your IDL installation. For additional information, see "Controlling Playback Rate" in the "Animations" chapter of the Using IDL manual.
46881
License Wizard Does Not Run on Solaris with Java Desktop
If you use the Solaris Java Desktop and click Yes to run the License Wizard at the end of the installation process, the Installation Complete dialog may be displayed without the License Wizard ever appearing. Running the License Wizard via the command displayed on the Installation Complete dialog will also fail.
To run the License Wizard if this occurs, do the following:
 
1. Click Exit to finish the installation process.
2. Run IDL as the same user you ran the xinstall installation program as.
3. Enter ittlicense at the IDL> prompt to run the License Wizard.
4. Complete the licensing procedure.
 
If you ran the installation program and License Wizard as root using sudo, you must remove the $HOME/.idl/itt directory:
$ cd ~  
$ cd .idl  
$ sudo rm -r itt  
If this is the first time you have installed IDL or ENVI on this machine, the .idl directory will contain a README file but no other subdirectories. In this case, remove the .idl directory as well:
$ cd ~  
$ sudo rm -r .idl  
If you used the help system in the License Wizard, you must also change the ownership on several files created by the IDL Assistant help viewer:
$ cd ~  
$ cd .qt  
$ sudo chown <your user id> idl_assistantrc  
$ cd ~/.assistant  
$ sudo chown <your user id> *License*  
where <your user id> is your login name.

back to top

Macintosh Platforms

ID
Description
41410
Click-Through Focus Problem on Mac OS X 10.4 (Tiger)
In some instances, focus can remain stuck on a window, despite subsequent window commands. For example, if you type these consecutive commands at the IDL command line:
PLOT, FINDGEN(99)  
ZOOM  
the plot window does not get focus after the ZOOM command. The command locks up IDL because any attempt to click on the plot window, in order to tell ZOOM where to zoom, is thwarted because the window manager is swallowing the focus click.
Workaround: Change the X11 start-up parameters. Do the following:
1. Open an X11 terminal window.
2. Enter the following at the shell prompt:
   defaults write com.apple.x11 wm_click_through -bool true  
3. Quit X11.
The new default will not take effect until after you restart X11, but it will persist from that point (i.e., you will not have to make the change again).
41916
Errors When Starting the DICOM Service
If you install the DICOM Network Services module, the installer allows you to specify that the DICOM service be started automatically at boot time. If you encounter an error that looks like:
   dicomexstorscp_install error  
   There was an error encountered running  
   idl_6.4/bin/dicomexstorscp_install.  
then your Administrator group may not have permission to modify items in the appropriate StartupItems directory.
Workaround:
1. Log in as root.
2. Open a terminal window.
3. Enter the following commands:
   cd ~  
   touch .profile  
4. Change to the directory where ITT Visual Information Solutions products are installed (by default, /Applications/itt):
   cd /Applications/itt  
5. Enter the following command:
   ./idl64/bin/dicomexstorscp_install  
42012
Errors When Running the ITTLicense Application
If you run the ITTLicense application and enter a permanent, server-type license, you are presented with the option to have the license server start automatically at boot time. Selecting this option may fail silently. (You will know that the operation failed because IDL's license server will not be running after you reboot your Macintosh.)
Workaround:
1. Log in as root.
2. Open a terminal window.
3. Enter the following commands:
   cd ~  
   touch .profile  
4. Run the ITTLicense application again.

back to top

  IDL Online Help (March 06, 2007)