---------------------------------------------------------------------- Release Notes: IDL Version 5.5 Last Updated: August 24, 2001 ---------------------------------------------------------------------- The information found in these release notes is separated into the following sections: * New Features Added in IDL 5.5 * Problems Corrected in IDL 5.5 * Known Problems in IDL 5.5 * Documentation Errata in IDL 5.5 * Platforms Supported in IDL 5.5 ===================================================================== NEW FEATURES Added in IDL 5.5 ===================================================================== For more information on what's new in this release, see the "What's New in IDL 5.5" manual located in the /info/docs directory of your CD-ROM, or visit the RSI web site at www.ResearchSystems.com. Additional information on new features which did not make it into the "What's New in IDL 5.5" manual is found in the "Documentation Errata" section in this release notes file. NOTE: The IDL Help file was not updated for this release. For information about the new features, refer to "What's New in IDL 5.5." ===================================================================== PROBLEMS CORRECTED in IDL 5.5 ===================================================================== =-=-=-=-=-=-=- ALL PLATFORMS: =-=-=-=-=-=-=- New STATUS Keyword for POLYWARP Support --------------------------------------- When calculating polynomial coefficients for 45-degree rotations with POLYWARP certain inputs may cause singular matrices. This rarely happens with real data, but does happen with more idealized data (such as squares or regular shapes). In this type of case, it is very easy to get a failure in the INVERT. In IDL 5.5, a STATUS keyword has been introduced for feedback on such rare occurrences. Estimates for GAUSSFIT Functionality Improved --------------------------------------------- In IDL 5.5, the way the estimates are constructed in GAUSSFIT if not provided by the user has been improved. If the ESTIMATES array is not specified, estimates are calculated by first subtracting a polynomial of degree NTERMS-4 (only if NTERMS is greater than 3) and then forming a simple estimate of the Gaussian coefficients. Incorrect VOIGT Result Dimensions for Array Input Corrected ----------------------------------------------------------- In IDL 5.5, the return result has been fixed to have correct dimensions. Previously, if the A and U argument values were both arrays, and U had more elements, the dimensions were incorrect. ATAN Complex Output Corrected ----------------------------- In IDL 5.5, the ATAN function now computes the complex arctangent for complex input. Previously, for a complex number Z=X+iY, ATAN(Z) would internally split Z into its real and imaginary components and compute ATAN(Y, X). IDL code that uses this undocumented behavior should be changed by replacing calls to ATAN(Z) with ATAN(IMAGINARY(Z), REAL_PART(Z)). For example, in IDL 5.4, to compute the argument (or angle) of a complex number: z = COMPLEX(2, 1) PRINT, ATAN(z)*180/!PI ; undocumented behavior IDL prints: 26.5651 Now, in IDL 5.5, to compute the argument: z = COMPLEX(2, 1) PRINT, ATAN(IMAGINARY(z), REAL_PART(z))*180/!PI IDL prints: 26.5651 HDF-EOS Data Output Enhancements -------------------------------- IDL HDF-EOS routines now consistently handle the array ordering between IDL and C used by the HDF-EOS library routines. In addition, dimension size vectors and dimension name lists are also now in IDL order rather than in C order. This was done so that IDL order is maintained in the writing and reading of data arrays with the EOS routines. Enhanced routines include: EOS_SW_DEFDATAFIELD EOS_GD_DEFFIELD EOS_SW_DEFGEOFIELD EOS_GD_DEFTILE EOS_SW_EXTRACTPERIOD EOS_GD_READFIELD EOS_SW_EXTRACTREGION EOS_GD_READTILE EOS_SW_PERIODINFO EOS_GD_REGIONINFO EOS_SW_READFIELD EOS_GD_TILEINFO EOS_SW_REGIONINFO EOS_GD_WRITEFIELD EOS_SW_WRITEDATAMETA EOS_GD_WRITEFIELDMETA EOS_SW_WRITEFIELD EOS_GD_WRITETILE EOS_SW_WRITEGEOMETA Note that for the EOS_GD_READFIELD, EOS_SW_READFIELD, EOS_GD_WRITEFIELD, and EOS_SW_WRITEFIELD routines, the START, STRIDE, and EDGE keywords should also be specified in the IDL dimension order. Note that EOS_GD_INQDIMS and EOS_SW_INQDIMS return dimension size and name information without consideration of order. Note that programs written with previous versions of IDL EOS routines may have been created to intentionally compensate for the previous behavior. Due to the array-handling enhancements in IDL 5.5, that compensation of code may now generate incorrect results. Arrays of 1 Element are Incorrectly Converted Into Scalars ---------------------------------------------------------- Previous versions of IDL contain an error that caused it to convert single element array tags within structures into scalars when referenced: IDL> a = { tag:[1] } IDL> help, a.tag INT = 1 This has been corrected in IDL 5.5 and now returns a single element array as expected: IDL> a = { tag:[1] } IDL> help, a.tag INT = Array[1] Existing programs that depend on the old behavior may need to be modified to include a subscript (e.g. b=a.tag[0] instead of b=a.tag). This code should continue to work with older IDL versions as well since IDL allows specifying a zero subscript with scalar values. Executive Command .SKIP Behavior Improved ----------------------------------------- The .SKIP executive command no longer executes a single statement following the statements skipped. The .SKIP command only skips statements leaving .STEP and .CONTINUE for executing them. Multiple File Selection Fixed in CW_FILESEL ------------------------------------------- Selection of multiple files now works properly using the CW_FILESEL compound widget. The VALUE field of the event structure returned by CW_FILESEL is a string containing the most recent filename selected, if any. Even if the MULTIPLE keyword is set, VALUE will only contain the most recently selected filename. To retrieve all of the currently selected filenames, use the GET_VALUE keyword to WIDGET_CONTROL. CW_ANIMATE Now Handles TrueColor Images --------------------------------------- In previous releases, the CW_ANIMATE compound widget did not handle TrueColor images; however, in IDL 5.5 TrueColor images are supported and the IMAGE keyword can either be a 2D image or a 3D (24-bit) image. Single TICKFORMAT for all levels of IDLgrAxis --------------------------------------------- IDL 5.5 now allows a single provided TICKFORMAT string for all levels of a multi-level axis. BYTSCL Result for Integer Input Agrees with Byte and Float ---------------------------------------------------------- Previously, if the input to BYTSCL was one of the integer type, it would produce different results than if the input was byte or floating. In IDL 5.5, when using the BYTSCL function, the results for integer type now agree with the results for floating-point type. You may notice a slight difference in BYTSCL results for integer input. Improved Results for Spectral Estimation with HANNING ----------------------------------------------------- The formula to compute the HANNING window has been improved from 0.5 * (1-Cos(2*!Pi*k/(N-1))) to 0.5 * (1-Cos(2*!Pi*k/N)). Because of the change from 1/(N-1) to 1/N, the HANNING window will no longer appear symmetric in the time domain, but will give improved results for spectral estimation. Restoring an IDLgrAxis Object Containing Multiple Levels -------------------------------------------------------- Previously, IDL could not correctly restore an IDLgrAxis object when it contained multiple levels. The object was restored but most attempts to use it resulted in errors or crashes. This problem has been fixed in IDL 5.5 and IDL will now save/restore this object correctly. IDL 5.5 will also successfully restore this object from an IDL 5.4 save file. Using IDL 5.4 will still fail. The only way to avoid this problem in IDL 5.4 is to do the following: 1) Restore file containing axes. 2) Use obj->GetProperty to retrieve relevant properties for each multi-level axis (GetProperty should work on the restored axis objects) 3) Create a new axis with the retrieved properties. 4) Do not attempt to destroy the restored axis objects. IDLgrAxis::GetProperty Behavior Fixed for TICKFORMAT and TICKUNITS ------------------------------------------------------------------ In IDL 5.4, when using IDLgrAxis::GetProperty to get the TICKFORMAT property, an array of strings was returned even in cases where there is only one level in the axis. For backwards compatibility of programs written in IDL 5.3 and earlier, IDL 5.5 has been changed to use the behavior used in IDL 5.3. In IDL 5.5, when using IDLgrAxis::GetProperty to get the TICKFORMAT property, a scalar string is returned in cases where there is only one level in the axis. The TICKUNITS property (new in IDL 5.4) also changed in IDL 5.5 so that using IDLgrAxis::GetProperty to get the TICKUNITS property returns a scalar string in cases where there is only one level in the axis. Using AXIS, YLOG=0 Clears a Logarithmic Axis -------------------------------------------- The YLOG keyword for the AXIS procedure has been changed so that it can be used to set a logarithmic axis (YLOG=1) as before, and now can also clear the logarithmic axis (YLOG=0). =-=-=-=-=-=-=-=-= WINDOWS PLATFORM: =-=-=-=-=-=-=-=-= Paths Can Be Enclosed in Single or Double Quotes ------------------------------------------------ For executive commands that take a path as an argument, the path can now be enclosed in single or double quotation marks. For example, the .COMPILE executive command can now be used as follows: .COMPILE 'C:\My Files\test.pro' as well as .COMPILE "C:\My Files\test.pro" Exit/Entry of Top-Level Base Widget Generates an Event ------------------------------------------------------ In previous versions of IDL for Windows, top-level base widgets were not able to process tracking events. In IDL 5.5, an enter event is now generated by top-level base widgets whenever the mouse moves from a child widget to the top-level base, and an exit event is generated whenever the mouse moves from a top-level base to a child widget. List Widgets Now Dynamically Get Horizontal Scroll Bars ------------------------------------------------------- When a list widget is assigned a value that is longer than the width of the widget, a horizontal scroll bar now appears on the widget. This is true only when either the XSIZE or SCR_XSIZE keyword is specified. As in earlier versions of IDL, if neither XSIZE nor SCR_XSIZE is specified, the list widget dynamically changes width to accommodate the longest value. Base Widget Correct Resizing ---------------------------- Base widgets now resize properly, using the SCR_[XY]SIZE and [XY]SIZE keywords. The main issue had been that the value supplied to [XY]SIZE included the borders, title bar, and possibly a menu in addition to the client area. So, using [XY]SIZE was identical to using SCR_[XY]SIZE. This has changed. Now, a distinction is made between [XY]SIZE (client area/viewport) and SCR_[XY]SIZE (total area: title bar, borders, menu, client area). Improvements Using WIDGET_BUTTON with Transparent Bitmaps --------------------------------------------------------- As of IDL 5.5 for Windows, only 8-bit (or fewer) images have transparency when creating multiple WIDGET_BUTTON widgets with /BITMAP set. Also, note that with images greater than 8 bits per pixel, there is no disabled counterpart to the bitmap. Events Generated Only When Selecting A Button --------------------------------------------- In previous versions of IDL, an event was generated when an already selected button was selected again. This behavior has been changed in IDL 5.5 such that an event is only generated when an unselected button is selected. Cross-platform Consistency of Widget Geometry Dimensions -------------------------------------------------------- Previously, when using IDL for UNIX, the widget bases' geom.scr_[XY]size values were the same as the values for the internal client area (geom.[XY]size). If a menu bar was present, the geom.scr_ysize value did not include the height of the menu bar. The scr_Ysize value has been corrected to include the height of the menu bar, if present. Also previously on IDL for UNIX, a base with a menu bar the y dimension of the TLB_GET_SIZE value included the height of both the client area and the menu bar. It has been corrected to include only the height of the client area. NOTE: When using IDL for UNIX, the geom.scr_[XY]size values do not include the height and width of the window manager frame as they do on Windows. The geometry of the window manager frame is not accessible to the client application, and dimensions and offsets are based on the rectangle inside the window manager frame. IDL Display Updating in ActiveX Control --------------------------------------- In certain situations in previous releases, the IDL component to the ActiveX control would not re-display (update). This problem has been corrected in IDL 5.5. =-=-=-=-=-=-=-=-=-= MACINTOSH PLATFORM: =-=-=-=-=-=-=-=-=-= DIALOG_PICKFILE No Longer Changes The Current Working Directory --------------------------------------------------------------- In IDL 5.5, the current working directory is no longer changed following the use of DIALOG_PICKFILE. Dollar Sign "$" Format Code Suppresses Line Return -------------------------------------------------- In previous releases of IDL, the dollar sign ($) format code, used to suppress the line return for user input, did not function correctly. This has been fixed in this release. =-=-=-=-=-=-=- UNIX PLATFORM: =-=-=-=-=-=-=- FlexLM Licensing Conflict With IDL Causing Program Hangs Corrected ------------------------------------------------------------------ The conflict between FlexLM licensing and IDL that sometimes caused IDL to hang on some UNIX (including Solaris and HP) systems has been resolved in IDL 5.5. Unmapped Bases and WIDGET_BASE ------------------------------ As of IDL 5.5, unmapped widget bases are no longer mapped if the group leader is mapped. In the past, on IDL for UNIX, unmapping/mapping a group leader would cause the group members to be minimized/restored. This was inconsistent with IDL for Macintosh and Windows in which mapping/unmapping the group leader had no effect on the group members. Unmapping/mapping the leader now has no effect on the group members. Minimizing/restoring the leader causes the group members to be minimized/restored. Ability to Redirect STDOUT to a File ------------------------------------ In IDL version 5.4 there was a problem with redirecting STDOUT to a file. The problem has been fixed in this release. Problems with CURSOR_IMAGE and CURSOR_MASK keywords to DEVICE and IMAGE and MASK keywords to IDLgrWindow::SetCurrentCursor ------------------------------------------------------------ On Unix little-endian platforms (Intel based), the two bytes within each integer were being used in the wrong order, resulting in cursors that were split in half. Now, on all platforms, the high-order byte gives the left half of the cursor, while the low-order byte gives the right half. Example: Given a 16x16 byte array containing a 0 or 1 bitmap pattern, you can construct a new cursor by entering the following commands: ; Assume variable bitmap contains a 16x16 byte array. bytes = CVTTOBM(bitmap) ; Left half becomes the high order, right becomes low order. image = 256*bytes[0,*] + bytes[1,*] ; Direct graphics: DEVICE, CURSOR_IMAGE=image ; Object graphics: oWindow->SetCurrentCursor, IMAGE=image The above commands should now work on all platforms. ===================================================================== KNOWN PROBLEMS in IDL 5.5 ===================================================================== =-=-=-=-=-=-=- ALL PLATFORMS: =-=-=-=-=-=-=- Using Save As for an Existing IDL Project ----------------------------------------- There is a known problem when using Save As for an IDL Project. If you save a project in a different directory path than the original location, the files contained within the IDL Project appear to be included in the Save As operation. In reality, the files underneath the project still reside in the original location and the IDL Project does not resolve the new directory path. Problems Reading Compressed HDF SD Data Sets -------------------------------------------- You may encounter intermittent problems reading compressed HDF SD data created with HDF version 4.0r2 or earlier. MAP_SET Procedure Changes !X.TYPE System Variable ------------------------------------------------- Using MAP_SET results in a change to the !X.TYPE value which is not restored afterward. Exporting Project to Paths that Contain Spaces ---------------------------------------------- There is a known problem in IDL for UNIX and IDL for Macintosh when exporting an IDL Project to a directory whose full path contains any spaces. For example, exporting to C:\My Files\MyProject or /home/user/My Files/MyProject will fail because of the space in "My Files". To avoid this problem, export only to paths that do not contain spaces. WIDGET_CONTROL's /DEFAULT_BUTTON and /CANCEL_BUTTON --------------------------------------------------- There is a known problem with the functionality of the /DEFAULT_BUTTON and /CANCEL_BUTTON features to WIDGET_CONTROL. =-=-=-=-=-=-=-=-= WINDOWS PLATFORM: =-=-=-=-=-=-=-=-= Accessing corrupt MrSID Files ----------------------------- IDL will exit non-gracefully when accessing corrupt MrSID files. The library used to access this type of file does not report any error conditions and just exits non-gracefully causing IDL to do the same. Online Help Text Not Visible Using High-Contrast Black Color Scheme ------------------------------------------------------------------- Text in the IDL Online Help is not visible if you select the High Contrast Black color scheme in the Windows "Display Properties" dialog. If you need to use a high-contrast color scheme to view the IDL Online Help, use the High Contrast White scheme. Alternatively, you can use the PDF documentation, which allows you to control the zoom factor. IDL Events Not Handled During Slider Drag Events ------------------------------------------------ Due to a Windows limitation, IDL events cannot be handled while a scroll widget is being dragged. On 16-bit TrueColor Devices, Exact Contents Not Returned in TVRD ---------------------------------------------------------------- There is a known problem that TVRD is not returning the exact contents of the specified portion of the current graphics device. When using TVRD on 16-bit TrueColor displays only 5 or 6 bits of pixel data are stored for each color channel. Using TVRD on these displays returns channel data where only the first 5 or 6 bits are significant; the other bits are undetermined. Problems Writing Files on Windows 98 ------------------------------------ There is a known problem in the Windows 98 operating system when writing more than 60 MB to a file in a single operation. This value was determined by internal testing at Research Systems. This limitation does not limit the size of the file, only how much data can be written in a single write operation. As a workaround, you can segment your data and write it out in smaller pieces. This problem does not exist on Windows NT 4.0 or 2000. =-=-=-=-=-=-=-=-=-= MACINTOSH PLATFORM: =-=-=-=-=-=-=-=-=-= List Widgets Do Not Dynamically Resize or Get Horizontal Scroll Bars -------------------------------------------------------------------- When neither the XSIZE nor SCR_XSIZE keyword is set for a list widget, and the widget is assigned a value that is longer than the width of the widget, the widget is supposed to dynamically resize to accommodate the width of the longest value. This currently does not work in IDL for Macintosh. When either the XSIZE or SCR_XSIZE keyword is set for a list widget, and the widget is assigned a value that is longer than the width of the widget, a horizontal scroll bar is supposed to dynamically appear when needed to accommodate the width of the longest value. This currently does not work in IDL for Macintosh. =-=-=-=-=-=-=- UNIX PLATFORM: =-=-=-=-=-=-=- IDL 5.5 Requires a Patch for Solaris OS --------------------------------------- The Motif library supplied by Sun in Solaris 8 requires a patch, available at http://www.sunsolve.sun.com before it will work properly with IDL. Without this patch, editable text and table widgets may cause the IDL program to crash. The patch to use depends on the hardware architecture on which you are running Solaris. For Sparc hardware (both 32- and 64-bit), the patch number is 108940-23. For Intel hardware, the patch number is 108941-23. EOS_EH_CONVANG fails on some 64-bit platforms: ---------------------------------------------- The EOS_EH_CONVANG function fails on some 64-bit platforms because of a bug in the HDF-EOS library. Shortcut Menu Limitations for Two-Button Mouse on Solaris --------------------------------------------------------- There is a known problem with shortcut menu functionality (otherwise known as context sensitive or pop-up menus) with a two-button mouse. Under Solaris, there is no way to simulate a right mouse button click with a two-button mouse. HyperHelp Find Feature May Not Work if Old idl.fts File Exists -------------------------------------------------------------- When you select the Find tab for the first time in the UNIX Online Help, HyperHelp attempts to create a file called idl.fts in the same directory as the idl.hlp file. If you do not have write permissions to the directory in which idl.hlp is located, the idl.fts file will be created in your $HOME/.hh directory. Although the default write location for the idl.fts file is the help file directory, the default read location (the directory in which HyperHelp first looks for an .fts file) is the $HOME/.hh directory. Therefore, if a new version of IDL is installed (which will contain a new idl.hlp file), and you have an old idl.fts file in the $HOME/.hh directory, the Find feature will not work, even if HyperHelp writes a new idl.fts file to the help file directory, because HyperHelp will read the old idl.fts file from the $HOME/.hh directory. If the Find feature is displaying topics that are different from the topics you select in the Find window, make sure you don't have an idl.fts file in your $HOME/.hh directory. If you do, shut down the IDL Online Help, delete the idl.fts file from your $HOME/.hh directory, reopen the IDL Online Help, select the Find tab, and rebuild the idl.fts file. Colors Used by the IDL Online Help System: ------------------------------------------ The IDL Online Help system uses up a certain number of available colors on UNIX systems, depending on the help page being displayed. If you need to reserve the maximum number of available colors for IDL graphics, shut down the IDL Online Help. Table Widget Row Labels Can Be Truncated: ----------------------------------------- In table widgets, the width of the column containing row labels may not be wide enough to accommodate the longest row label. For example, the following code causes the first row label to be truncated: PRO row_labels base = WIDGET_BASE() values = INDGEN(2,4) rLabels = ['This is a long row label','Two','Three','Four'] wTable = WIDGET_TABLE(base, ROW_LABELS = rLabels, VALUE = values) WIDGET_CONTROL, base, /REALIZE END To change the size of the row label column, use the COLUMN_WIDTH and USE_TABLE_SELECT keywords to WIDGET_CONTROL, as shown in the following example: PRO row_labels base = WIDGET_BASE() values = INDGEN(2,4) rLabels = ['This is a long row label', 'Two', 'Three', 'Four'] wTable = WIDGET_TABLE(base, ROW_LABELS = rLabels, VALUE = values) WIDGET_CONTROL, base, /REALIZE WIDGET_CONTROL, wTable, USE_TABLE_SELECT = [-1,0,-1,3], $ COLUMN_WIDTH = 150 END See WIDGET_CONTROL in the IDL Reference Guide for more information on the COLUMN_WIDTH and USE_TABLE_SELECT keywords. TLB_SET_XOFFSET or TLB_SET_YOFFSET Fails Before Widget is Realized ------------------------------------------------------------------ Setting WIDGET_CONTROL, widget_id, TLB_SET_XOFFSET=value or WIDGET_CONTROL, widget_id, TLB_SET_YOFFSET=value does not work unless the widget specified by widget_id has been realized (i.e., WIDGET_CONTROL, widget_id, /REALIZE). IDLDE Editor Problems When Running IDL 5.3 and 5.4 or 5.5 Concurrently ---------------------------------------------------------------------- There is a known problem with starting IDL 5.3 after running later versions of IDL. Since preferences are stored in your home directory, IDL 5.3 and subsequent versions will share this preferences file. The color and font style coding for Motif have been removed so the preference setting for Color Syntax may be incorrect when running IDL 5.3 after running subsequent versions of IDL. This can cause IDL to use more system resources than necessary. To fix this problem in IDL 5.3, select: File->Preferences and then click on the Edit tab. You will notice that the Enable Edit option under Colored Syntax is enabled. Even though it is enabled, it has not been activated. Click the Apply button to activate the setting. IDL for UNIX Breakpoint Markers Unaware of Line Insertions/Deletions -------------------------------------------------------------------- There is a known problem that in IDL for UNIX breakpoint markers still stay with the line number and do not update for changes made to the code in the editor window. IDLgrWindow Does Not Minimize in Linux Red Hat 7.1 With KDE Desktop Running the Kwin Window Manager -------------------------------------------------- On Intel Linux Red Hat 7.1 using the KDE desktop with kwin window manager, the minimize action for stand-alone object graphics windows in IDL is inactive. List Widgets Do Not Dynamically Resize -------------------------------------- When neither the XSIZE nor SCR_XSIZE keyword is set for a list widget, and the widget is assigned a value that is longer than the width of the widget, the widget is supposed to dynamically resize to accommodate the width of the longest value. This currently does not work in IDL for UNIX. Project->Export Doesn't Work if Path or Project Name Contains Spaces -------------------------------------------------------------------- When using the Project->Export feature or make_rt script on UNIX, the export operation will fail if either of the following contain spaces: * The name of the .prj file * The name of the directory to which the project is being exported Children of Bulletin Board Bases -------------------------------- Due to a Motif limitation, child widgets placed with offsets must be within the parent (bulletin board base) to be displayed. ===================================================================== DOCUMENTATION ERRATA in IDL 5.5 ===================================================================== NOTE: The IDL Help file was not updated for this release. For information about the new features, refer to "What's New in IDL 5.5." This section describes features or changes that are not included in the documentation shipped with IDL 5.5. =-=-=-=-=-=-=- ALL PLATFORMS: =-=-=-=-=-=-=- Documentation of Limits for BESELI, BESELJ, and BESELY X Values --------------------------------------------------------------- The X value limitations for the BESELI, BESELJ, and BESELY functions have all now been noted in documentation as: BESELI x = 0...709 BESELJ x = 0...10^8 BESELY x = 0...10^8 BESELK has no limitation for the X value. USA Keyword to MAP_CONTINENT Results in Multiple Coastlines Being Drawn ------------------------------------------ The USA keyword is used to map the outline of the states onto an existing outline of the continent. The two outlines are derived from different databases (the USA outline uses a geographical database, and a geological database is used for the continent), thus the coastline is drawn twice with some differences. Handling Duplicate Locations When Using TRIANGULATE --------------------------------------------------- The following information is needed at the end of the description for the REPEATS keyword to TRIANGULATE in the Reference Guide: NOTE: Use the new GRID_INPUT procedure to handle repeated points (duplicate locations). COND Argument Change -------------------- The argument description has been changed to the following: A The two-dimensional array. For LNORM = 0 or 1, the array A must be square and can be either real or complex. For LNORM = 2, the array A may be rectangular and can only be real. FINITE Example Change --------------------- With the addition of the new SIGN keyword to FINITE, the second example in the FINITE reference pages has changed with the following text: A = FLTARR(10) ; Set some values to +/-NaN and positive or negative Infinity: A[3] = !VALUES.F_NAN A[4] = -!VALUES.F_NAN A[6] = !VALUES.F_INFINITY A[7] = -!VALUES.F_INFINITY ; Find the location of values in A that are positive or negative Infinity: PRINT, WHERE(FINITE(A, /INFINITY)) IDL prints: 6 7 ; Find the location of values in A that are NaN: PRINT, WHERE(FINITE(A, /NAN)) IDL prints: 3 4 ; Find the location of values in A that are negative Infinity: PRINT, WHERE(FINITE(A, /INFINITY, SIGN=-1)) IDL prints: 7 ; Find the location of values in A that are +NaN: PRINT, WHERE(FINITE(A, /NAN, SIGN=1)) IDL prints: 3 Note: On some platforms, there is no distinction between +NaN and -NaN. HIST_2D Arguments, Keyword Descriptions, and Example Changes ------------------------------------------------------------ The argument description has been changed to the following: V1, V2 The arguments are arrays containing the variables. V1 and V2 may be of any numeric type except complex. If V1 and V2 do not contain the same number of elements, then the extra elements in the longer array are ignored. The keyword descriptions have been changed as follows: MIN1 MIN1 is the minimum V1 value to consider. If this keyword is not specified and if the smallest value of V1 is greater than zero, then MIN1=0 is used, otherwise the smallest value of V1 is used. MIN2 MIN2 is the minimum V2 value to consider. If this keyword is not specified and if the smallest value of V2 is greater than zero, then MIN2=0 is used; otherwise, the smallest value of V2 is used. A second HIST_2D example is as follows: To return the 2D histogram made from two floating point images, restricting the range from -1 to +1, and with 101 bins: F1 = RANDOMN(seed, 256, 256) F2 = RANDOMN(seed, 256, 256) Result = HIST_2D(F1, F2, MIN1=-1, MAX1=1, $ MIN2=-1, MAX2=1, BIN1=0.02, BIN2=0.02) TVSCL, Result IMAGINARY Tip and See Also Change --------------------------------- With the addition of the REAL_PART function to IDL 5.5, the Tip section in the IMAGINARY description is no longer applicable and the See Also should now include a reference to REAL_PART. NORM Argument Change -------------------- The argument description has been changed to the following: A A can be either a real or complex vector, or a real or complex two-dimensional array. POLYFILL Reference Pages Changes -------------------------------- The following changes occur for the following sections within the POLYFILL reference pages: The General Description: The phrase "hardware dependent fill pattern" no longer applies and should be removed. Fill Methods (the description of the Solid fill method has completely changed to the following text): By default, POLYFILL fills the polygon with a solid color. For devices that do not directly support filling with a solid color, the solid fill is automatically emulated using the line-fill method. Fill Methods (the description of the Patterned fill method has completely changed to the following text): Some output devices support filling with a pattern. For these devices, the fill pattern array can be explicitly specified with the PATTERN keyword. Refer to the description of that keyword for a list of devices that support patterned fill. PATTERN keyword description (The note in this description has completely changed to the following text): Note - This keyword is supported for the following devices: METAFILE, PRINTER (UNIX and Windows only), PS, WIN, X, and Z. For the PostScript device, fill patterns are only supported with language level 2. Use the LANGUAGE_LEVEL keyword to DEVICE to set the PostScript language level to 2 if filled patterns are to be used. On Windows 98, the pattern size is limited to 8 x 8. QHULL's CONNECTIVITY Keyword Description Change ----------------------------------------------- The example code statement within the CONNECTIVITY keyword description of the QHULL procedure's reference page in the "What's New in IDL 5.5" book is incorrect. This example code line should read: QHULL, lon, lat, tr, CONNECTIVITY = list, SPHERE = sphere or QHULL, lon, lat, tr, CONNECTIVITY = list, /DELAUNAY REBIN Description Change ------------------------ The equation provided in the REBIN description is incorrect. The first line of the equation for F(X, p) should read: F(X, p) = { X_p_ + (p - _p_) (X_p_+1 - X_p_) ... where the symbol _p_ indicates flooring to the nearest lower integer. SCALE Keyword for XVOLUME Scales in 3 Dimensions ------------------------------------------------ When using the SCALE keyword in an XVOLUME call, you can scale with a 3-element array of values [x, y, z]. Existing documentation only refers to using scalar values with the SCALE keyword. Using XOR with PLOT displays in PseudoColor ------------------------------------------- In PseudoColor, using XOR with PLOT displays red polygons as white for the Rainbow (#13) color table. This result is caused by PLOT initially erasing the display. The PLOT routine actually erases the current window display before drawing a PLOT. The erasing process is actually filling the current window with pixels. These pixels throw off the XOR calculations. A possible work around is to set the NOERASE keyword when calling PLOT. On color-indexed devices (PseudoColor), the pixel values are actually indices into a color table. Logical functions applied to these pixel values affect them as indices into a color table and not as the RGB color values themselves. Also, on most color-indexed devices, the IDL pixel values are mapped into a system palette, which results in a translation of the pixel value as it is stored into the frame buffer. The translated pixel values already written to the frame buffer may have unexpected effects on graphical operations performed with functions involving the destination pixel value (e.g., GXxor). This use of pixel values as color table indices and system-specific palette translations make it extremely difficult to get predictable results with SET_GRAPHICS_FUNCTION on color-indexed devices. STRSPLIT Use with Separators ---------------------------- STRSPLIT does not work as expected with separators like '&&', which consist of multiple occurrences of the same character. STRSPLIT interprets the substring '&' as a separator, although this does not match the specified pattern. You must call the STRSPLIT procedure with the /REGEX keyword when the target string is more than one character. Kernel Argument to CONVOL Need Not Be Square -------------------------------------------- The CONVOL routine description in the IDL Reference Guide states for the case where A is two-dimensional that "K is the l by l element kernel". However in the subsequent formula, CONVOL accepts non-square kernels (including one-dimensional kernels). TVRD Results with 16-bit TrueColor Visuals ------------------------------------------ The IDL documentation should read as follows: For the !D.TABLE_SIZE: TABLE_SIZE The number of color table indices. NOTE: For TrueColor visuals, !D.TABLE_SIZE will always be 256. If the visual depth is less than 24, IDL emulates 256 entries. For the CHANNEL keyword to TVRD: NOTE: If the display is a TrueColor display, and both the CHANNEL and TRUE parameters are absent, the maximum RGB value in each pixel is returned. CW_PDMENU Now Supports CONTEXT_MENU ----------------------------------- In IDL 5.5, the CW_PDMENU function now supports the CONTEXT_MENU keyword. Overwriting HDF Vdata --------------------- The Bugs entry in the Scientific Data Formats documentation for the HDF_VD_WRITE routine is incorrect. HDF vdatas can be appended or overwritten if they are defined at creation with a file interlacing mode of FULL_INTERLACE. Records in a fully interlaced vdata are written record-by-record which allows them to be appended or overwritten. For further information, consult the "Writing to Multi-Field Vdatas" section in the "HDF User's Guide" published by the National Center for Supercomputing (available at http://hdf.ncsa.uiuc.edu/doc.html). HDF_VD_GETNEXT Expects Vgroups, Not Vdata ----------------------------------------- The HDF_VD_GETNEXT routine in the in the Scientific Data Formats manual incorrectly states that it works with Vdata. This routine works with Vgroups rather than Vdatas. The HDF_VG_GETNEXT routine should be used instead of HDF_VD_GETNEXT. =-=-=-=-=-=-=-=-= WINDOWS PLATFORM: =-=-=-=-=-=-=-=-= Removal Of 8.3 File Clipping For Windows IDL -------------------------------------------- Support for 8.3 filename clipping has been removed from Windows IDL starting with this release. This completes the transition from Windows 3.1, with its 8.3 filename convention, to the longer file names that are supported by 32-bit versions of the Windows operating system (Starting with Windows NT and Windows 95). Filenames under Windows are now handled in the same manner as on all other platforms. The user visible effects of this changes are: * The "Clip long filenames" check box is no longer present in the General Preferences Dialog box accessed from the IDLDE menu bar via File->Preferences. * The TRUNCATED_FILENAME field of the !WARN system variable has been removed. * Windows IDL no longer truncates file names to 8.3 conventions under any circumstances Command Recall Default Changed to 20 on Windows ----------------------------------------------- The default number of commands saved in the recall buffer has been changed from 10 to 20 in Windows for cross platform consistency. However, if you import preferences when you install IDL 5.5, this change in the default is superseded by the previous installation's preferences. Saving Session Preferences Change --------------------------------- The Save Settings on Exit check box option in the General Preferences dialog has been removed in this release. Preferences are now saved for the session when the OK button is selected and when exiting IDL. Escape and Enter Key Behavior in Widget Dialog Not as Documented ---------------------------------------------------------------- In the WIDGET_CONTROL description in the IDL Reference Guide, the description for the CANCEL_BUTTON keyword states that pressing the Escape key is the same as clicking the Cancel button. Similarly, the description of the DEFAULT_BUTTON keyword states that pressing the Enter key is the same as clicking the default button. Although this is the desired behavior, due to a known problem, once any widget within a base widget is given focus, pressing the Return or Escape keys does not return an event. =-=-=-=-=-=-=-=-=-= MACINTOSH PLATFORM: =-=-=-=-=-=-=-=-=-= Improved IDE Components ----------------------- As of IDL 5.4, many of the IDE components have been improved. The performance of the IDL Log Window has been greatly increased, and IDL Editor windows on the Macintosh now provide split-pane editing as well as mouse-based debugging. Search->Find Dialog Enhancements -------------------------------- The Search->Find and Search->Replace feature was greatly enhanced in IDL 5.4. The dialog now allows you to search over an arbitrary number of files, or search files belonging to a specified project, or search all open files, as well as the existing single file search capabilities. The IDL Find feature now also supports UNIX-style regular expression searching as well as a batch mode which displays all search results in a separate window. In addition, a droplist of recent entries (up to ten search and replace terms) is available for convenient access. IDLDE for Macintosh Enhancements -------------------------------- Compiler errors encountered by IDL are now presented in the new IDL Error Window. The current file containing the error can then be brought up by double clicking on its entry in the table. Background and text color can now be arbitrarily set for both IDL Editor windows as well as for the IDL Log Window. IDL Editor Windows now print chromacoded text in color. MP Support for Volume Renderer ------------------------------ As of IDL 5.4, the IDL Volume renderer now supports Multiple Processor (MP) MacOS systems. SPAWN Behavior -------------- As of IDL 5.4, spawn on the Macintosh now blocks by default like the other IDL platforms. This means IDL will wait until the program spawned quits (unless IDL itself was spawned). By specifying the NOWAIT keyword to SPAWN one can force IDL to resume execution immediately after issuing the command. Hardware Acceleration Support for Multiple Monitor Systems ---------------------------------------------------------- As of IDL 5.4, OpenGL hardware acceleration on multiple monitor systems is now supported. The renderer will drop back to Software OpenGL while a window spans multiple monitors, or if the monitor the window is currently on does not support hardware acceleration. IDL Command Line Gains Auto Complete Feature -------------------------------------------- As of IDL 5.4, if enabled in the General Preferences Panel, the command will attempt to auto complete commands entered in the IDL Command Line using the contents of the Command Line Recall Buffer. The Tab key or the Right Arrow key will accept the auto completed command. Use of the Return key will input only those characters typed. IDL Macintosh Breakpoint Behavior --------------------------------- As of IDL 5.4, a single click sets a breakpoint. A single click on a set breakpoint removes it. An Option + a single click on a set breakpoint will disable it. ===================================================================== PLATFORMS SUPPORTED in IDL 5.5 ===================================================================== This table describes the computers and operating systems on which IDL version 5.5 will run. Operating Supported Platform Vendor Hardware System Versions -------- ------ -------- --------- --------- UNIX* Compaq Alpha Tru64 UNIX 5.1 Compaq Alpha Linux Red Hat 6.2** HP PA-RISC HP-UX 11.0 IBM RS/6000 AIX 4.3 Intel Intel x86 Linux Red Hat 6.0,7.1** SGI Mips IRIX 6.5.1 SUN SPARC Solaris 2 8 SUN SPARC(64-bit Solaris 2 8 Ultra) SUN Intel x86 Solaris 2 8 Windows Microsoft Intel x86 Windows 98, NT 4.0, 2000 Macintosh Apple PowerMAC MacOS 8.6, 9.x Macintosh*** * For UNIX, the supported versions indicate that IDL was either built (the lowest version listed) or tested on that version. You can install and run IDL on other versions that are binary compatible with those listed. ** IDL 5.5 was built on the Linux 2.2 kernel with glibc 2.1 using Red Hat Linux. If your version of Linux is compatible with these, it is possible that you can install and run IDL on your version. *** Includes G3, G4 and iMac IDL Products Not Supported on Alpha Linux ----------------------------------------- The DXF file format, IDL DataMiner, the MPEG file format, and IDL Wavelet Toolkit are not supported on the Alpha Linux platform in IDL 5.5. IDL Products Not Supported on 64-Bit IDL Platforms -------------------------------------------------- The DXF file format and IDL DataMiner are not supported on 64-bit IDL platforms.