NeXtMidas 3.2.1 Release Notes

Changes between release 3.2.0 and 3.2.1 are listed in blue.

(This release requires Java version 5 (or later) to build and run.)

Please see an important note regarding Oracle CVE-2010-4476 (Java floating point vulnerability)

NeXtMidas SYS Option Tree Tested on:
Platform OS Version Java Version(1) Native
Compiler
Web Browser
(WebStart/Applet)
Linux (x86_64) RedHat Enterprise 4u6 (ES) 5.0_22
6.0_29 (64-bit)(2)
gcc 3.4.6
Intel 9.1.052(3)
n/a
Linux (x86) RedHat Enterprise 5u7 5.0_22
6.0_29
gcc 4.1.2
Intel 9.1.053(3)
Intel 10.1.025(3)
Firefox 3.6.24(5)
Linux (x86_64) RedHat Enterprise 5u8 5.0_22
6.0_31 (64-bit)(2)
gcc 4.1.2
Intel 9.1.053(3)
Intel 10.1.026(3)
Firefox 10.0.3 64-bit (Java 6 64-bit plug-in)(5)
Linux (x86_64) RedHat Enterprise 6u2 6.0_26 (64-bit)(2)
7.0_03
gcc 4.4.5
Intel 12.0.1.107(3)
Firefox 3.6.26 64-bit (Java 6 64-bit plug-in)(5)
Sun/SPARC Solaris 10 6.0_30 (32-bit) gcc 3.4.6 Firefox 2.0.0.9
Windows (x86) Windows XP SP3 6.0_24 MinGW/gcc 3.4.5 Firefox 3.6.26 (Java 6 plug-in)
Internet Explorer 8.0.6001 (Java 6 plug-in)
Windows (x86) Windows 7 SP1 6.0_33 MinGW/gcc 3.4.5 Chrome 11.0.696 (Java 6 plug-in)
Internet Explorer 8.0.7600 (Java 6 plug-in)
(1) All code was compiled with "-source 5" and "-target 5" specified (this is the default). All tests use the Java VM from Oracle (formerly Sun Microsystems) (see http://java.oracle.com/).
(2) Not all versions of Java support 64-bit systems. In the case of x86_64 systems only the most recent updates to Java 5 or Java 6 will work. Please see http://java.sun.com/j2se/1.5.0/system-configurations.html for more details.
(3) $NM_CC and $NM_CXX was set to point to the Intel C/C++ compiler (icc and icpc).
(4) As of RHEL5u5, there is no standard 64-bit version of Mozilla Firefox available (it comes with the 32-bit version of Firefox). Oracle (formerly Sun Microsystems) suggests using the 32-bit (Java plugin) for Java applet support for 32-bit versions of Firefox.
(5) Note: As of Firefox 3.6.x, the new (Next-Generation) Java plugin (included with Java 6 update 10 and later) must be used (i.e. $JAVAHOME/jre/lib/i386/libnpjp2.so) for Java applets to work. Please see http://www.java.com/en/download/faq/firefox_newplugin.xml for more details.
Do NOT install the 32-bit version of Java on a 64-bit
Linux system, it will not work correctly!!!

XBC Tested on:
(XBC - Allows running of X-Midas Fortran/C++ primitives in NeXtMidas)
X-Midas
Mode
Platform OS Version Java Version C/C++ Compiler Fortran Compiler
"64Bit" Linux (x86_64) RedHat Enterprise 4u6 (ES) 5.0_22
6.0_24 (64-bit) (1)
gcc 3.4.6 Intel 9.1.052
Intel 10.1.025(2)
"32Bit" Linux (x86) RedHat Enterprise 5u8 6.0_29 gcc 4.1.2 PGF 9.0.3
"64Bit" Linux (x86_64) RedHat Enterprise 5u8 6.0_24 (64-bit) Intel 9.1.052(2)
Intel 10.1.026(2)
gcc 4.1.2
Intel 9.1.052
Intel 10.1.026(2)
"64Bit" Linux (x86_64) RedHat Enterprise 6u1 6.0_31 (64-bit) Intel 11.1(2)
gcc 4.4.4
Intel 11.1(2)
(1) Not all versions of Java support 64-bit systems. In the case of x86_64 systems only the most recent updates to Java 5 or Java 6 will work. Please see http://java.sun.com/j2se/1.5.0/system-configurations.html for more details.
(2) $NM_CC and $NM_CXX was set to point to the Intel C/C++ compiler (icc and icpc).
(3) $NM_FORTRAN was set to point to the Intel Fortran compiler (ifort).

Important Note Regarding the Portland Group Fortran Compiler: Early versions of the Portland Group Fortran77 6.x (PGF 6.x) compiler does incorrect optimization that prevents the compiled code from executing correctly. Currently, the Midas community recommends using either PGF 5.1, the latest patch release of the PGF 6.0.x or switching to the Intel compilers.
PGF appears to not work correctly correctly in a multi-threaded application. Care must be taken to synchronize access to the Fortran code, otherwise random crashes or behavior may surface unexpectedly.

NeXtOpt Tested on:
(NeXtOpt - NeXtMidas as an option tree for X-Midas)
X-Midas
Version
Platform OS Version Java Version C/C++ Compiler Fortran Compiler
4.8.3 Linux (x86_64) RedHat Enterprise 4u9 (ES) 6.0_31 Intel 10.1.025 Intel 10.1.025
4.8.0 Linux (x86) RedHat Enterprise 5u8 (WS) 6.0_32 gcc 4.1.2 PGF 9.0.3
4.6.4 Linux (x86_64) RedHat Enterprise 5u8 (WS) 5.0_22 Intel 10.1.026 Intel 10.1.026
4.8.3 Linux (x86_64) RedHat Enterprise 5u8 (WS) 6.0_31 gcc 4.1.2 PGF 8.0.4
4.10.2 Linux (x86_64) RedHat Enterprise 5u3 (ES) 6.0_31 Intel 11.1.064 Intel 11.1.064
4.10.2 Linux (x86_64) RedHat Enterprise 6 (ES) 6.0_24 gcc 4.4.4
Intel 11.1
Intel 11.1
Important Note Regarding the Portland Group (PGI) Fortran Compiler: Early versions of the Portland Group Fortran77 6.x (PGF 6.x) compiler does incorrect optimization that prevents the compiled code from executing correctly. Currently, the Midas community recommends using either PGF 5.1, the latest patch release of the PGF 6.0.x or switching to the Intel compilers.
PGF appears to not work correctly correctly in a multi-threaded application. Care must be taken to synchronize access to the Fortran code, otherwise random crashes or behavior may surface unexpectedly.

Online Documentation

Java 5 Migration

No longer supported platforms

What Might Break (Changes in Behavior)

Escape Character Sequences in Tables and Results - ***MAJOR CHANGE*** The NeXtMidas macro language now handles escape characters BY DEFAULT, both in quoted String results created at the command line and Tables created from quoted Strings. The escape character is the backslash ("\"), which means that any String parsed as an Arg or a Table will have the backslashes treated as escapes, unless the backslash itself is escaped. This includes everything in a macro, since every line in a macro is parsed as a String prior to macro execution. The most likely negative impacts are to Windows users who create Windows path Strings using the backslash character as a directory separator. The new behaviour can be disabled using the ENV IOOPTION DisableEscapeSequences for args and the Table flag disableEscapeSequences, which can be set in ENV DEFAULTTABLEFLAGS. See DR 799057-1 for details.
Running one-shot command from the OS prompt - Prior to NeXtMidas 3.1.2, running an OS command (or a typo in a NeXtMidas command name) from the OS prompt once the NeXtMidas session has started in the form 'nm somecommand' would incorrectly return the user to the NeXtMidas 'nM>' prompt. Users who were used to entering the NeXtMidas shell that way should instead use 'nm' followed by no arguments.
CONVERT - In 3.1.0, a fix was made to the color mapping in the utility method GraphicsUtil.createImageFromFile(..). This fix prevents users from overwriting the "reserved" background color. As such, the "CTHRU" argument, which previously allowed users to set the background to transparent, no longer does anything. Users must now create a custom colormap if they want to have transparent areas. See DR 809218-1 for details.
FFT - The /1D switch on FFT no longer sets the YUnits to TIME on the output file (i.e. it will default to NONE). See DR 807558-3 for details.
FILE / BaseFile - In 3.1.3, a fix to correct OPEN/T/A (open text file and append to it) function . Previously it always overwrites at the beginning of the text file. This fix was done in BaseFile.open() so that it effects other subclasses (e.g. TextFile) when the APPEND flag is given. See DR 816801-1 for details.
FILES - In 3.1.1, the /F switch outputs to a text file instead of a BLUE file when the filename extension ends with ".txt". See explain file or DR 524863-3 for details.
GCONTROL - In 3.1.1, the /WTHEME= switch overrides the /THEME= switch. Additionally, the ALERT widget type (GAlert) now fills the alert area with the widget's background color so that it displays properly along with the widget's foreground color.
To revert back to previous behavior, set the BUGFIX.GCONTROL_WTHEME_OVERRIDES_THEME system property to false. See DR 528650-3 for details.
- In 3.1.2, the ALWAYSOPEN flag was removed from GMenu since it conflicted with the GWidget.TITLE flag setting. To achieve the ALWAYSOPEN behavior (on by default) make sure NOT to set the ROLLUP flag (which was meant to be an internal state toggle for popup menus when rolled up). To prevent a user from accidentally toggleing the ROLLUP flag, make sure the INLINE flag is set (on by default).
KEYWORD - In 3.1.2, the KEYWORD command FPUT/FSET functions were changed to correctly put keywords in the MAIN header if they are in the .key file with a single '=', otherwise put them in the EXTENDED header. Previously, all the keywords defined in a .key file would be put in the EXT header. Users who are using FPUT/FSET and expecting to put keywords defined with a single '=' in the EXTENDED header will see a change in behaviour.
To revert back to previous behavior, set the BUGFIX.KEYWORD_FSET_INTO_EXTENDED_ONLY to true or use the /EXTONLY switch. See DR 809249-3 for details.
MAKE/BUILD - In 3.1.2, the "nmmake.codeareas" property in build.props was renamed to "nmmake.clean.codeareas" to better identiy the purpose of the property.
MENU - Support for the deprecated keyword only ACT= parameter has been removed; use FUNC= (second parameter) instead.
In 3.1.1, the default ouput file format for /F switch was changed from 4A (32 chars) to XA (80 chars) to allow for longer command names and the possibility of including the non-SYS option tree names via /OPT switch. Use /FORMAT=4A switch to revert to prior format.
In 3.1.1, when /F switch does not contain a filename, it will now default to "menu.tmp" vs "menu" which could be "menu.prm" or "menu.tmp".
INVOKE, PLOT - In 3.1.1, the KeyObject class (which handles lookups and sets of items from the command line, setup tables, etc) was changed to prevent double-setting of Objects that are Tables, such as when passing in a LayerWMS config table in a PLOT setup table. There should be no effect to users. See DR 808602-3 for details.
Plot default Features - In 3.1.1, the logic in Layer.getFeature() was made more precise. The result is that new (default) Features created via that method (which includes Query and mouse commands) on non-Type 1000 plots will no longer be of type DATA, since the DATA type of Feature is not supported except on type 1000 plots. See DR 808487-3 for details.
Plotting results that are tables - In 3.1.0, code was added to PLOT to evaluate a passed-in filename to see if it is a defined RESULT. If it is, AND if the RESULT is a Table (or table in String form), the RESULT will get converted to a String. No expected negative impact to users. See DR 532542-3 for details.
Plot Axis Buffer Zones - In 3.1.0, code was added to PLOT to create a small (user can configure via /axisBuffer=value [DEF=1e-12]) buffer to the edges of the plot axis (XMIN, XMAX, YMIN, YMAX), in order to show data that falls exactly on the previous axis level. Users who are checking for absolute equality of the axis based on set values may experience issues, and should use equality with tolerance (EQT) instead or disable (set to 0) the axis buffer with the switch /axisBuffer=0. See DR 807326-3 for details.
Plot Messages - In 3.1.1, a small change was made to the way PLOT processes messages. Most messages that are not being processed by the PLOT thread (i.e. the current Thread is the MACRO or SWING EDT) are now re-queued for the PLOT thread to process instead. This is done to help prevent concurrent modifications by two opposing threads. For performance reasons, the PAINT, POINTER, and DRAG messages are excluded from this change. There is no expected impact to users, though the re-queue of the message does impose a small delay (def= 1/80th of a second). See DR 808415-3 for details.
Aligning Time-based Type 1000 Plots - In 3.1.0, a change was made to automatically align (overlap) type 1000 plots that were time based but had a different abscissa start time. That chnage had the unexpected effect of breaking some user's plot, so in 3.1.2, the behaviour was put on a switch (/TimeAlign) with a default state of false. Users who were already takign advantage of overlapping time-based type 1000 plots will now need to use the switch.
SEDIT - In 3.1.2, the SEDIT command was overhauled to bring it more in line with the X-MIDAS SEDIT functionality (for cross-use purposes). The LENGTH and SELECT functions were made one-based (since they count elements), and the BETWEEN and RANGE functions changed so that negative numbers are always an index from the last character in the input string. This new behaviour is off by default (using the new /LEGACY switch), but will be enabled by default in a future release. See the SEDIT explain file for more details.
SWITCH - In 3.1.3, the SWITCH command was modified so that the DEL function now stores the value of a switch (in the result given in VALUE=) prior to deleting it.
BaseFile / FileName - Since 3.1.0, nxm.sys.lib.BaseFile.getQualifiers() and FileName.getQualifierTable() returns an empty Table if no filename qualifer is specified (instead of null). See DR 807622-3 for details.
LIST2 - Since 3.1.0, as part of our ongoing effort to increase message support, some users may see SELECT messages when clicking their LIST2, when previously they did not (unles they used the /legacy switch).
Library changes - Some API method signatures has changed to take in more generic arguments, requiring a refresh compile of your source code (option trees, libraries). A NoSuchMethodError at runtime may be seen for classes compiled using previous version of NeXtMidas. FYI: Most classes compiled with NeXtMidas 3.1.1, will still run under most NeXtMidas versions 2.7.1 and later.
  - FileName - In 3.1.2, the getExt(String) method was updated to return empty string ("") if input name does not have a file extension to be consistent with other APIs in FileName. Also, it now returns null if input name is null (instead of throwing a NullPointerException). See API docs for details. Use getExtLegacy(String) to revert to previous behavior.
  - ListFile - In 3.1.1, the update() method was added to the ListFile interface which mirrors BaseFile and DataFile's update() method to update the headers in the file.
  - StateVector - In 3.1.1, the setAccGeo(double[]]) method was corrected to call setAccGeo(double,double,double) vs setVelGeo(...). See DR 666331-19 for details.
Classes removed - Deprecated classes that have been removed:
nxm.sys.lib.HttpResource.Href -> mean to be private
Methods removed - Deprecated methods/fields that have been removed/changed:
nxm.sys.intr.Generate.doJar(..) -> meant to be private
nxm.sys.intr.Generate.doNativeJar(..) -> meant to be private
nxm.sys.intr.Generate.genExplain(..) -> meant to be private
nxm.sys.intr.Generate.genExplainStub(..) -> meant to be private
nxm.sys.intr.Generate.getJarFileName(..) -> meant to be private
nxm.sys.intr.Generate.getKeystorePath(..) -> meant to be private
nxm.sys.intr.Generate.getNativeJarFileName(..) -> meant to be private
nxm.sys.intr.Generate.hasNativeCode(..) -> meant to be private
nxm.sys.intr.Generate.getOptionRoot(..) -> meant to be private
nxm.sys.intr.Generate.makeExpStub(..) -> meant to be private
nxm.sys.intr.Generate.runCommand(..) -> use Foreign.runInternal(..)
nxm.sys.intr.Generate.signJar(..) -> meant to be private
nxm.sys.intr.Generate.signJar11(..) -> meant to be private
nxm.sys.lib.FileUtil.getFullname() (lower case n) -> use getFullName() (upper case N)
nxm.sys.lib.HttpResource.closeConnection(..) -> use close()
nxm.sys.lib.HttpResource.openConnection(..) -> use open()
nxm.sys.lib.KeyObject.parseArgs(..) -> meant to be private
nxm.sys.lib.KeyObject (fields: Table gets and Table sets) -> was never used
nxm.sys.lib.StateVector (fields: vn,ve,vu, ax,ay,az, an,ae,au) -> meant to be protected. Use appropriate get/set methods.
nxm.sys.lib.Privileges.nextNS() -> not used
nxm.sys.libg.Layer1D (fields: fbuf and xIsTime) -> meant to be protected
nxm.sys.libg.Line.getConfiguredGraphics(.) -> meant to be private / no longer used
nxm.sys.libg.Line.drawPixels(..) -> use MPlot.drawPixels(..)
nxm.sys.prim.list2.getUseCustomMmbMenu(..) -> use getButtonAction()
nxm.sys.prim.list2.setUseCustomMmbMenu(..) -> use setButtonAction(..)
nxm.sys.prim.list2.setMsgId(..) -> use setMessageHandler(..)
nxm.sys.net.HPage.handleRequest(..) -> meant to be private
nxm.sys.net.HPage.parseRequest(..) -> meant to be private
nxm.sys.net.HPage.readline(..) -> meant to be private
nxm.sys.net.HPage (fields: CR, LF) -> use nxm.sys.inc.AsciiMap.CR and AsciiMap.LF
nxm.sys.net.HPage (fields: HTTP_*) -> use java.net.HttpURLConnection.HTTP_*

New Features Added

OS Environment variables  
NM_COMPLETION_AUX_EXCLUDE
Seed for list of pipe ('|') separated AUXs to be excluded when using the FILES command or tab-completion.
NM_STARTUP_MACRO
Override the user-level startup macro.
See RuntimeOptions.txt or run "nm -h" for details.
Java system properties  
-DCOMPLETIONAUXEXCLUDE=
Seed for list of pipe ('|') separated AUXs to be excluded when using the FILES command or tab-completion.
-DNMSTARTUP.SYS=
Override the system-level startup macro.
-DNMSTARTUP.USER=
Override the user-level startup macro. This is supported in all run modes (normal, -INDEPENDENT, Applet, Java Web Start, and via nxm.sys.lib.NeXtMidas) except for NeXtOpt.
See RuntimeOptions.txt or run "nm -h" for details.
Commands - CYCLOFUNC;DSP - Java-based version of the cyclofunc. See explain file for details.
  - FASTCORRELATE;DSP - Executes overlap-save FFT block cross-correlation. See explain file for details.
  - FSVI;DSP - Frame Synchronous Video Integrator (FSVI). See explain file for details.
  - NORMALIZE;DSP - Normalizes an input file by frames. See explain file for details.
  - RMIINTERFACE;NETTEST - Java Remote Method Invocation (RMI) Interface for Midas to analyze, interface, and/or debug services using Java RMI. See explain file for details. See also sample RMICLIENT and RMISERVER commands in the NETTEST option tree for examples.
  - SETSEED - Since 3.1.1, the SETSEED command sets the random number generator seed. See the SETSEED explain file for details.
  - SHOW - Since 3.1.1, the SHOW command has been added to give users a fast, easy way to view and store some common environment and session parameters. See the SHOW explain file and nxm.sys.test.test_show.mm for details and example usage.
  - SIGSTATISTICS;DSP / SIGSTATDEMO;DSP - Since 3.1.2, the inclusion of the SIGSTATISTICS and SIGSTATDEMO commands to the DSP option tree provide statistics about a signal including an estimation of noise floor, SNR, etc.. See explain file for details.
BUILD - In 3.1.2, the BUILD command uses "build.codeareas.libs" "build.codeareas.other" properties in build.props for the list of code areas to automatically include when compiling an option tree when the area is specified to be "ALL". See build.props and/or DR 808316-2 for details.
  - In 3.1.2, BUILD now supports OS environment variables in primitives.cfg build configuration file (primary for host primitives). See explain file and/or DR 531950-3 for details.
  - In 3.1.2, the CHECKXBC;XBC command is called for automatically for Fortran Host primitives during the make/build process (by buildopt;XBC). See DR 810689-1 for details.
CONVERT - In 3.1.1, the CONVERT command was updated with the conversion SV2KML, which allows users to create custom KML files from Type 500 StateVector data. See the CONVERT explain file for detailed usage.
CONVERT - In 3.1.2, the MSGCFG2INC conversion function was updated to also auto generate qmessdecl.h, qmessdef.h, and qmessdef.hh C/C++ header files for C++ host primitives using the XBC option tree.
ENVIRONMENT - In 3.1.1, the ENVIRONMENT command can be used to define a list of AUXes that will be excluded during FILES searches with wildcards and command line tab-compeltion. See ENVIRONMENT explain file for details.
FILE - In 3.1.2, the /TL switch was added for the COPY function to allow setting tranfer length for binary copies. See explain file for details.
In 3.1.2, when using the COPY function, the output file's size is pre-allocated to the input file's size on disk. This can be disabled via the {PREALLOCATELENGTH=false} file qualifier on the output file name.
FILES - Users can now specify AUXs within the READ AUX to NOT be searched when attempting to find files that match a given filter. This can be done via NM_COMPLETION_AUX_EXCLUDE OS environment variable or the /EXCLUDE=<auxlist> switch, each of which allows users to specify a pipe ('|') separated list of AUXs that will not be searched when attempting to find a file that matches a given filter. See the FILES explain file for details.
- In 3.1.1, the /F switch outputs to a text file when the filename extension ends with .txt. See the FILES explain file for details.
GCONTROL - PIPEMON - added a setValue method to allow programatically changes. See DR 806699-3 for details.
- STEXT - Since 3.1.1., added STEXT widget type to allow display of styled text (e.g. HTML). See gcontrol explain file or DR 808332-1 for details.
GENERATE - Added support for a TEXT directive in Operators.cnf. See DR 808288-1 for details.
GRAPHICS - Added support for /DISPLAY= (in 3.1.1) and /ICON switches for graphical commands to control how it's window comes up. See User's Guide -> System Operations -> Switches -> Universal Switch page -or- the bottom of the switch explain for details.
HEADERMOD - In 3.1.3, added support for the /DETACH= switch to mirror X-Midas functionality. See explain file and/or DR 808100-3 for details.
HISTOGRAM - Added support for BINS= and CXMODE= keyword only parameters and the /BITS switch. See explain file and/or DR 808288-1 for details.
HTTPGET;UCL - In 3.1.1, response messages includes the request information in the Message quals field and the /WARN can be used to disable warning messages to the terminal. See explain file for details.
HWDRIVER;HWC - In 3.1.2, added support for the CRCR sequence as a terminator.
IMPORT - In 3.1.2, an optional DEF parameter was added to the import intrinsic so that if an environment variable is imported, but does not exist, the OUT key will be put into the results table with the DEF value provided. See explain file for further details and an example.
KEYWORD - In 3.1.1, added support for /FLAGS=NoAbort to try to continue when an invalid keyword block is found. See explain file and/or DR 811112-1 for details.
- In 3.1.3, the KEYWORD command ADD function was changed to allow multiple ADDs on a single command line. Also, the /WARN=false switch will now also apply to ADDs See KEYWORD explain file or DR 815456-3 for details.
LIST2 - Right mouse button (RMB) deselecting over the row numbers.
  - Can list a specified Table (or Table file) for first input argument. See DR 531871-3 for details.
  - Since 3.1.1, can handle very large files without use of the /MOD switch.
  - Since 3.1.1, can set the max allowable size of the RAM file created by LIST2, using the /UseRamFileMaxSize=<int> switch.
  - Since 3.1.2, can update the template of an open LIST2 with a .tbl file, using the message OPENTEMPLATE or the methods setTemplate() or updateTemplate().
Macro/Shell Enhancements - A proxy server can be specified for HTTP web resources using the
PROXYHOST=<httpProxyHostname> and PROXYPORT=<theProxyPortNum> qualifiers on URLs. e.g.
nM> plot http://servername/test.kml{PROXYHOST=192.168.1.1,PROXYPOST=80}
See nxm.sys.lib.HttpResource and DR 666879-19 for details.
- CALC/FCALC - In 3.1.1, added RANDOM/P and RANDOM/S operators which uses Java's Random and SecureRandom pseudo-random number generator (PRNG). See CALCULATOR or FCALCULATOR for details.
- CHECKXBC - In 3.1.2, added the /WARN switch to allow warnings to be suppressed and /SUMMARIZE switch to provide a summary of warnings. See explain files for details.
- DeleteOnExit File Qualifer - In 3.1.1, the DELETEONEXIT qualifier can be added to local files to request that it be deleted when the JVM exits normally. e.g.
nM> waveform mytemptestfile.tmp{deleteOnExit=true}
See nxm.sys.lib.FileResource and/or DR 808165-3 for details.
- HOMEPATH - Added /CWD switch to track current working directory as HOMEPATH. See HOMEPATH epxlain file and/or DR 807330-3 for details.
- IF - In 3.1.2, Added support for "ENDS" test function to test if a string ends with another string.
- MENU - In 3.1.1, added /FORMAT switch allow specify larger ASCII format (e.g. TA) for /F switch.
- MENU - In 3.1.1, updated /F switch to also look at /OPT switch to allow including non-SYS option tree names appended to output file along with command name.
- PANEL - new ability to choose which screen to pop panel to. See PANEL explain file and/or DR 532474-3 for details.
- RESULTS - new ability to count the results that matches given filter. See explain for details.
- RESULTS - In 3.1.3: added ability to directly set boolean result (type "Z:") from INLINE TEST(..) vs requiring two statements (and one extra temporary results).
- STATUS - In 3.1.1, added the /ALL switch to list additional main header fields for debugging.
- SWITCH - In 3.1.2, added the /CS switch to get case-senstive switch values for non-quoted strings.
- SWITCH - In 3.1.3, the DEL function was modified to store the current switch value in the VALUE= argument. Previously, it would delete that value, if given. See explain file for details.
- TABLE - In 3.1.2, added /FLAGS= switch for the LOAD function to allow passing the desired Table flags on the output Table (e.g. to prevent duplicates and to NOT force to using KeyVector mode table for LOAD/T when ADD flag is NOT set). See explain file for details.
- TABLE - In 3.1.3, to support Python integration, added LOADCFG and SAVECFG functions to allow users to read a .cfg file into a Table and write a Table into a .cfg file. See Table explain file for details.
- Terminal - The command line terminal's tab-complete autofill now checks the OS environment variable NM_COMPLETION_AUX_EXCLUDE for a list of pipe ('|') separated AUXs to not search when attempting to autofill a filename.
- Terminal - In 3.1.1, added the format(..) and printf(..) methods that takes C-style printf(..) format strings for displaying to output to terminal. See the nxm.sys.lib.Terminal API docs and/or DR 808128-3 for details.
PLOT - Layer1D now supports overlapping time-based type 1000 files. See DR 531915-3 for details.
POPUP - In 3.1.3, Added ability to create FILE CHOOSER popup. See DR 810018-3 and popup explain file for details.
RMIF - Added a /HOST= switch to indicate server's IP address or hostname to bind on for the Java primitive (within NeXtMidas) to mirror functionality of the host primitive (within X-Midas via NeXtOpt). See explain file and/or DR 523226-3 for details.
  - Added a /DEVICE= switch so that a Network Device name can be supplied (e.g. eth0). This allows a more generic way to select the desired network interface card (NIC) on machines with multiple NICs. See explain file and/or DR 523226-3 for details.
RMSG - In 3.1.3, added support to T2R for X-Midas tables utilizing the H: or h: syntax. See explain file and/or DR 814318-1 for details.
  - The Limits (OUTERLIMITS and/or VIEWLIMITS) table now supports XMIN for X1, XMAX for X2, same for for Y and Z. See DR 808273-1 for details.
  - Y-Axis text now rotates to draw vertically to ensure the text fits. This can be adjusted via the Axis menu options ~RotateVals (to force rotation of Axis text), and ~AutoRotate (which will only rotate the text as needed).
  - Since 3.1.1, LayerMulti now supports Plot mode settings (MAG,PHASE,10LOG,20LOG,REAL,IMAG)
  - Since 3.1.1, there is a new Layer LayerScatter for plotting CSV, Type 3000, and Type 6000 files. See the PLOT explain for details.
  - Since 3.1.1, Plot now supports the /XCNT and /MTAG=<table> switches. /XCNT is used to set which mouse actions send a message (same as CNT=), and /MTAG defines a set of results to be loaded with either the X,Y,Z, or X+Y values when the mouse action occurs. See the plot explain file for more details.
  - Since 3.1.1, there is a new Layer LayerScatter for plotting CSV, Type 3000, and Type 6000 files. See the PLOT explain for details.
VNCVIEWER;VNC - Now supports <host>:<display_number> syntax for HOST= argument. See explain file for details.
WAVEFORM - Added ability to output shape=NOISE that matches the X-Midas WHITENOISE algorithm. See explain for details.
XBC - Better support for X-Midas C++ host primitives within XBC and OS environment varibles in primitives.cfg build configuration.
  - Added support for following APIs: M$BETWEEN, M$EXT, M$FFTSIZE_BEST, M$FFTSIZE_VALID, M$HEAD, M$ROOT, M$TAIL, and M$TRIMS
  - In 3.1.2, added xmtime.h, msgmask.h, and qmessages.h header files additional C++ host primitives support under XBC. During the build processs for XBC and it's properly configured dependent option trees, the qmessdecl.h, qmessdef.h, and qmessdef.hh are now auto generated from existing messages.cfg files that exists in path when CONVERT <opt> MSGCFG2INC is called.
Libraries - Args - support for REQUIRED flag in getTable(String,Table,int flags).
+ In 3.1.3, three parameters verions of getCS, getQ, getS, getU, getFileName methods and a four parameter version of getString method allows API user to specify the default value for a state switch (e.g. /switch vs a blank string getting returned).
+ See API docs for details.
- BaseFile - Ability to specifying default file qualifiers. See API docs and/or DR 807624-3 for details.
- FileName - new toLocalFileName(int dir), toURL(), and setDefaultQualifier(..) methods.
+ In 3.1.2, new getBasename(String) and getRoot(String) methods.
+ See API docs for details.
- FileUtil - new recursiveDelete(..) methods to recursively delete the specified path that works with bad symbolic links.
+ New toLocalFileName(URL), isLocalFileName(URL), and splitEntries(..) methods.
+ See API docs for details.
- GraphicsUtils - createImageFromFile(..) now supports complex data types in the input file. See convert explain file and/or API docs for details.
- Import - new getEnv(String key, String defValue) method that returns defVal if the OS environment variable is not found or if the JVM Security Manager prevents reading enviroment variables (e.g. in an Applet).
+ In 3.1.2, new expandEnvVars(String) to subsitute variables starting with a dollar ('$') with existing OS environment varaibles.
+ See API docs for details.
- Keywords - Keywords.Iterator now implements java.util.Iterator.
+ Unpacking of lkey (length of total keyword block) field in keyword header is now signed int_4 (vs unsigned int_3).
+ Unpacking of lext (length of non-value part of keyword block) field in keyword header is now signed int_2 (vs unsigned int_2).
+ In 3.1.2, new addAll(Map), putAll(Map), and setAll(Map,int flags) methods to insert/add key/values from a java.util.Map object into the Keyword object.
+ See API docs for details.
- Parser - new constructor that allows the delimitor and doClean to be specified on object creation.
- StringUtil - In 3.1.2, new cleanSplit(String) and expandVariables(..) methods. See API docs for details.
- Table - remove(String key) and remove(String key,int attr) now returns the removed value.
+ new addIfNotPresent(..) methods similar to java.util.Set.add(..) method.
+ In 3.1.1, added support to use Java's ConcurrentHashMap (CHM) as a table mode (e.g. the underlying structure used to hold the keys and values.)
+ In 3.1.2, added new Table(TextFile, int flags) constructor and fromTextFile(TextFile, int flags) method.
+ See Table API docs for details.
- TextFile - In 3.1.1, flush() to write cached data to disk has been implemented.
+ Support for the FLUSH flag (to automatically write cached data to disk) is now available (e.g. useful when logging to text files).
For example: RMIF/log=mylogfile.txt{flags=+FLUSH}
+ See API docs for details.

Known Third-Party Bugs

The following are known third-party bugs and limitations that may cause problems for NeXtMidas users.
ALL - A NeXtMidas installation built on a RHEL5 machine cannot run a RHEL4 machine. It will crash when trying to load native code (with a SIGFPE). Workaround is to disable native code via -DNONATIVE=true property, e.g. "setenv NM_USER_JVM_FLAGS -DNONATIVE=true". Another workaround is to build on the RHEL4, which can run on the RHEL5 machines. See BUG 2330 NeXtMidas built with RH53 will not run on RH44 for more details.
  - On 2011-February-08, Oracle released a patch to correct Security Alert CVE-2010-4476 (Java Runtime Environment hangs when converting some floating point strings to a binary floating-point number). This vulnerability affects all (non-patched) versions of the Java Development Kit/Java Runtime Environment prior to version 6u24. Please correct this vulnerability on your system by running the Floating Point Updater patch, or, by upgrading to the latest Java Development Kit, version 6u24 or later release.
GCONTROL - Can not see cursor or highlighted text in text-entry widgets when using Java 5.0 on Linux (Java Bug 6287895). This is fixed in Java 6.0, please upgrade to Java 6.0 to avoid this issue.
JDK 7 - Some users may experience graphical issues when initially un-ZOOMing some plots. This has only been observed on Windows 7 machines running JDK 7. Resizing or hard refreshes corrects the issue.
OpenJDK - Some users have experienced minor graphical glitches in NeXtMidas GUIs when using OpenJDK.
OS - There is a known Java Bug (4052517) that prevents OS commands from being executed in Unix when the permissions are 750 and the user's default group does not match the group of the command. The result is either a "not found" or a "cannot execute" error. This bug is fixed in Java 6. (This bug can cause the NeXtMidas build to fail under Java 5 or Java 1.4.2 when gcc does not have 755 permissions.)
PLOT - There is a rendering problem when PLOT is run from a Linux session inside VirtualPC on Windows XP. This appears to be a problem with graphics drivers in some versions of VirtualPC. We have been unable to duplicate the problem on a stand-alone installation of either Linux or Windows XP.
SOURCEDG - SOURCEDG running on RedHat Enterprise Linux 4 (RHEL4) may encounter BindExceptions and/or SocketTimeoutExceptions due to a bug in the IPv6 stack on RHEL4 (see Java Bugs 6347853 and 6218155). You can avoid this issue by forcing Java to use the IPv4 stack (just do a "setenv NM_USER_JVM_FLAGS -Djava.net.preferIPv4Stack=true" prior to running nmstart).
XBC - There is a known Java bug related to garbage collection (Java Bug 6268279 and related bugs) that can cause a core dump when making extremely frequent M$... calls from a host primitive (typically seen if polling a results parameter with little or no pause between calls). Upgrade to Java 5.0 to avoid this.
  - Building static libraries with both the -fPIC and -i-static flag is still "experimental" in the Intel 9.1/10.x/11.x Fortran compiler (see thread 30222879 on the "Intel Software Network Forums" for details). In practice, this only appears to affect users on 64-bit systems. As a work-around only builds on 32-bit machines include the "-i-static" flags in "ifort.comp.append.32bit" and "ifort.link.append.32bit" properties in $NMROOT/nxm/sys/cfg/build.props. On 64-bit platform, the compiler will default to dynamically linking the Intel runtime libraries, so users will need to run with the LD_LIBRARY_PATH environment set to include the Intel libraries installed location.
  - The Intel C/C++ prior to 11.1.059 (update 3) has a bug that causes the BUILD of C++ HOST primitives that access the Mu pointer to fail with an error message like: "(0): internal error: 0_1561 ... compilation aborted for $NMROOT/nxm/xbc/host/test_mu_okio.cc (code 4). ".
The Intel compiler has a bug in compiling code that access a thread local storage constant pointer (which is the definition of the Mu pointer). See Intel issue DPD200138828 at http://software.intel.com/en-us/articles/intel-professional-edition-compilers-111-fixes-list/. GCC does not have this bug. To workaround this Intel compiler bug (by not making the Mu a const pointer), define _WORKAROUND_INTEL_COMPILER_ERROR_0_1561 in your build.props (e.g. "native.lin.cflags.append=-D_WORKAROUND_INTEL_COMPILER_ERROR_0_1561") or directly in the C++ source file.
  - There is a known issue running OpenMP in NeXtMidas. To workaround uncomment additional properties [ifort.libs.dir] and [ifort.openmp.workaround] in the SYS build.props. [ifort.libs.dir] is the path to the Intel compiler directory. [ifort.openmp.workaround] appends the necessary flags to the compiler however the library reference must be adjusted to reflect the respective Intel compiler version (if using Intel 12.x or later use -liomp5 otherwise use -lguide the current default). See the Users Guide or the example in the XBCTESTOPT2 option tree at $NMROOT/nxm/xbc/test/nmopts/nxm/xbctestopt2 .
VNC - It has been noted by users that NeXtMidas will not function in a VNC session if the -depth option is set to 32. 32 is an invalid color depth, valid -depth option settings are 8, 16, and 24. We recommend the default -depth setting of 16.

Known Issues

CALL - A SUBROUTINE does not have limited scope, scope is the same as procedure.
   
CONVERT - Tables created by the XML2TBL function may appear to "drop entries" when dereferenced. Since XML2TBL is deprecated, this will not be fixed, use the XML2TAB in place of XML2TBL.
   
GCONTROL - Some controls do not support headless mode.
   
LIST2 - The table for a /LEGACY select message may contain "extra" fields.
  - Row/cell selection is undefined when listing a pipe.
  - Type 2000 files with large frame size may not load properly.
  - CLICKACTION={COL=...} does not work properly (BUG 1352).
   
NeXtOpt - Changes in X-Midas 4.5.x prevent NeXtOpt from running.
  - NeXtMidas commands run from inside an X-Midas macro (specifically when using PIPE or XPIPE) may exit prematurely. For example a NeXtMidas intrinsic run from the INITIALENTRY of a controls section can cause the pipe to stop prematurely.
  - May get warnings about problems mapping to the messages section if the X-Midas message queue is not up.
   
PLOT - A PLOT of a pipe on a hidden tab may discard data from the pipe while the tab is hidden (similar to use of the /NICE= switch).
  - Timecode readout for large Type 2000 may give t=00:00:00.
   
XBC - XBC does not support running two copies of the same command simultaneously.

Bugs Fixed

All NeXtMidas bugs and enhancements are tracked using Bugzilla. If you are connected to the Internet clicking on the Bug number below will provide details related to the bug and a complete list of all changes made to resolve it. GForge DR number is included for all customer-submitted bugs. GForge entries are listed "n/a" for bugs that appear in pre-release snapshots of NeXtMidas (not publicly available) -or- not available on GForge.


Bugs Fixed in Release 3.2.1 (12 Dec 2012)
Bug Number GForge DR Description
2453 806505-3 MidasBean: needs a cleanup method (minor adjustment to remove MidasDisplay reference at REG.WIN.cmdID)
2570 812956-1 support Java7 (JDK7) (adjustment to original fix)
2616 809772-3 Gcontrol: Need more docs for /FMT= switch, use of MFormat
2632 810294-3 LayerT5 Stack Overflow (regression)
2662 810766-3 PLOT / MPlot: Race condition in formatReadout()
2664 820426-1 HPrimitive.checkout() throws NullPointerException when it cannot delete tempFile
2668 820513-1 PLOT: NPE in MPlot.refresh() when closing then opening files
2679 820876-1 NEXTOPT: backgrounded nm commands use 100% cpu after nm/off kills JVM
2682 831305-1 GENERATE: Jar Signer certificate expiring

Bugs Fixed in Release 3.2.0 (31 Jul 2012)
Bug Number GForge DR Description
2488 807475-3 PLOT: LayerT5 cuts off parts of polygons (regression from earlier release)

Bugs Fixed in Release 3.1.3 (13 Jul 2012)
Bug Number GForge DR Description
2612 808100-3 HEADERMOD: Creating files in detached mode
2608 815722-1 X-Midas 4.11.1 breaks NeXtOpt (NXM option tree)
2610 815776-1 Cannot headermod on pipes NOT updating headers since 2.9.2
2624 816801-1 FILE: does not append to text files
2595 814925-1 Plot / LayerT5: FillCones option doesn't completely fill cones on the dateline
2614 815456-1 KEYWORD: should be able to add multiple keywords with ADD function
2615 809815-3 GControl: Incorrect initialization of BEAN widget
2619 814318-1 NeXtOpt: rmsg needs to support X-Midas H:/h: syntax for tables
2568 N/A Args.getString(name,defval,flags) is NOT consistent for regular params vs switch params need way to specify state switch default value
2622 809942-3 TABLE: Add option to read Python configuration files
2621 810018-3 POPUP: Add FILE option
1447 768754-1 Need for context when running -INDEPENDENT

Bugs Fixed in Release 3.1.2 (31 May 2012)
Bug Number GForge DR Description
1104 501176-5 LIST2: out of memory error on large file (~1.3GB)
1356 517204-3 CONVERTARGB: loops through more points than needed
1374 517398-3 XBC: throws an error when LRCT primitive exits
1378 665005-19 XBC: m$put_keydata doesn't work with constant string literals
1921 523226-3 RMIF: Missing /HOST= switch in Java version
2004 524863-3 FILES command should support text files output to handle > 80 character file names
2168 527239-3 Duplicate of Bug 1104: LIST2: Out of memory errors
2369 802331-1 XBC: Incompatibility between M$FFTSIZE and M$RFFT
2419 531915-3 PLOT / Layer1D: Support overlapping time-based plots
2429 531950-3 BUILD: XBC: does not use primitives.cfg correctly for OS Environment variables
2551 812040-1 Need to start window maximized
2553 808750-3 LIST2 is unable to list a detached BLUE file
2562 812665-1 DEBUG: potential lost settings when running from $HOME/nmstartup.mm
2570 812956-1 support Java7 (JDK7)
2571 808731-3 Consider SIGSTATISTICS and SIGSTATDEMO for inclusion in DSP option tree
2572 N/A WINDOW primitive does not support symmetric switch
2577 813078-1 FOREACH: Nested FOREACH loops break out early when using Objects
2580 808976-3 Plot / LayerWMS: Config menu pops up on wrong screen when dual-headed
2582 808994-3 IMPORT: would be useful to have a default when env does not exist
2583 808989-3 SWITCH: it would be nice if switches could be case-sensitive
2585 808751-3 LIST2: negativeArraySize exception with files larger than RamResource.RamFile's 2 GiB
2586 810790-1 MACRO: background submacro with pipes delete pipe entry on exit
2587 810689-1 BUILD / XBC: As part of building MIDAS HOST primitives, run checkXBC
2588 808316-3 MAKE / BUILD: cannot control which option tree areas to build
2589 813792-1 Support native libraries on some 64-bit machines with generic os.arch system property of "x86_64" like MacOS X 64-bit
2591 814047-1 LIST2 custom scroll bar cannot handle very large number of rows
2593 813250-1 Update Docs for Nibble and Offset Byte Data Types
2594 N/A FTP glitch
2596 814551-1 REG.HANDLERS.PACKET in -INDEPENDENT mode allows dupes
2597 531227-3 Duplicate of Bug 2278: XBC: want type 1200 support
2598 809224-3 THEME: headless mode check causes NPE in Netbeans GUI Builder
2599 809249-3 KEYWORD: incorrectly puts keywords in extended header with FSET
2600 808016-3 NM: One-shot command with type "O" issue or OS command not truly on-shot
2601 813645-1 Update PLOT explain file to include EXPORTIMAGE
2602 815128-1 LIST2: doesn't support using .tbl files when swapping templates
2603 N/A IF: Need string ends with test function
2605 N/A HWDRIVER: Need additional valid terminator sequence
2606 815348-1 XBC: calling m_d2a in C++ primitive causes SEGV since Mc & Mu has not be init
2607 809558-3 NeXtMidas needs file handler entries for all PLATINUM files

Bugs Fixed in Release 3.1.1 (28 Mar 2012)
Bug Number GForge DR Description
1992 665884-19 LIST2: Adding rows to listed type 6000 file corrupts temp (RAM) version
2004 524863-3 FILES command should support text files output to handle > 80 character file names
2159 N/A Duplicate of Bug 2457: PLOT / FileResource: ocassional NPE when invoke ,, plot.openfile(..)
2219 666331-19 POSITION: Errors in getSpeed() calculation in Position class
2453 806505-3 MidasBean: needs a cleanup method
2479 807327-3 PLOT: nothing displays if Y2 <= Y1
2481 807330-3 HOMEPATH: Set to track CWD
2500 807567-3 Occasional exceptions when running sd360 a multitude of times / Table iterator and remove / ConcurrentHashMap table mode
2503 8076880-3 Plot / LayerGeo: FDOA lines do not intersect both solutions as expected
2511 808019-3 PANEL: graphics glitches when placing panes
2512 807625-3 DATAFILE / PIPE: Can't pipe type 6000 files the same way as type 3000 files
2522 810451-1 need Frame Synchronous Video Integrator (FSVI) command
2534 808332-1 GCONTROL/GWIDGET: HTML gcontrol text capability
2535 812041-1 HELP/BUILD: support <command>=<other_command>;<another_opt> syntax
2536 808344-3 MidasBean thread should be named
2538 808165-3 Implement a delete on EXIT qualifier for FileResource
2539 808150-3 Not a Bug: PLOT: suspect PLOT locks up user GUI
2540 808131-3 ELSEIF: questionable syntax permitted, but doesn't function properly
2541 808149-3 GCONTROL: Missing documentation and tests for /CS switch with BUTTON widget
2542 808220-3 PLOT / LayerMulti: LayerMulti ignores mode=
2543 808140-3 GCONTROL: Ignores /WTHEME= if /THEME= is set
2544 808239-3 PLOT / LAYERSCATTER: Add LayerScatter to augment / replace LayerXY
2545 808128-3 Terminal: Add MT.format(...) function that takes printf(..) style format strings
2546 811117-1 RMIF hung with no errors when logging is on / TextFile is not thread safe
2547 810688-1 XBC incorrectly implements M$GRAB support
2548 811112-1 Keyword / Status: Hangs with error in extended header
2549 808487-3 LAYER: call to getFeature() causes warning
2552 812046-1 INVOKE / KeyObject: unable to invoke "public abstract" method from private inner class that implements nested interface(s)
2554 810454-1 NM/NMSTART/NMPROFILE: Disallow from running inside shell
2555 810453-1 SHOW: Add SHOW command and add default HW Config (prm) file
2556 808414-3 PLOT / LayerWMS: NullPointerException in getCursor()
2557 810923-1 HTTPGET: Should pass qualifiers through to macro
2561 812894-1 CONVERT: StateVector (Type 5000) to KML conversion
2562 812665-1 DEBUG: potential lost settings when running from $HOME/nmstartup.mm
2563 808602-3 PLOT / KEYOBJECT: Annoying warning when using setup Table
2565 808198-3 XBC: build (deprecation) warnings with 64-bit RH 6.1 and Intel (ifort) 12
2567 530739-3 MENU - give option for /F= to include semi-colon option tree name in output
2568 530739-3 Args.getString(name,defval,flags) is NOT consistent for regular params vs switch params
2569 812814-1 fexists returns true for NULL and "" under NeXtMidas 3.0.1
2576 530739-3 PLOT: Write mouse location (POINTER / DRAG / BUTTON messages) to a result
2579 804137-1 CALC's random is not truly random and SETSEED

Bugs Fixed in Release 3.1.0 (30 Dec 2011)
Bug Number GForge DR Description
1133 807385 LIST2: Deselect not working over row numbers
1744 808790-1 CONFIDENCE leaves temporary files
1757 808990-1 TUNER: IndexOutOfBoundsException from certain input file sizes
2091 525956-3 PLOT / FEATURE : SWINGDB causes Y index of HLine Feature to lose precision
2126 806662-1 TIMEX errors when displaying very large values (e.g. 1e15)
2392 531871-3 LIST2: Should handle table and table files
2401 807296-1 LIST2: cannot exit via RETURN if a row is selected
2404 808615-1 NeXtOpt: RMIF: error compiling under RHEL6 using ICC 12 / GCC 4.4.x for undefined u_char
2419 531915-3 PLOT / Layer1D: Support overlapping time-based plots
2426 531916-3 PLOT: DateString readout ignores ExtPrec
2428 807328-1 list2 interval selection problems
2430 532364-3 Class runnable from Java file not runnable from NXM
2440 808288-1 Generate: add support for TEXT directive in Operators.cnf
2443 807196-1 RESULTS/SET: Should NOT be able to overwrite restricted results (AUX, ENV, OPT, RAM, REG)
2446 N/A Examples of web based server/client macros
2454 806513-3 RESULT: Context different when result set in loop in shell vs macro
2455 806564-3 Table: remove(String) should return previous value
2456 806558-3 PLOT: Error parsing colormap
2457 806477-3 Plot: invoking openFile(..) causes frequent NullPointerExceptions
2458 532474-3 Panel: Need ability to choose which screen to pop panel to
2459 532538-3 Plot / LayerT5: ArrayIndexOutOfBounds exception when setting colormap
2460 532542-3 Plot / LayerWMS: Inconsistent results table look-up
2461 806384-1 Add fastcorrelate command
2462 806874-1 Add NORMALIZE command
2464 806883-1 PLOT: Initial Z values not saved when zoomed at open
2465 806699-3 GControl PIPEMON: needs a setValue method
2466 666879-19 HttpResource: support proxy
2467 807207-3 LIST2: Row selection by value is WRONG if the table is sorted
2468 810450-1 HTTPSERV: HPage should use buffered output stream for output socket
2469 808287-1 enable escape sequences support in quoted strings in Macros and Tables
2471 807299-3 GeodeticUtil: ComputeEllipseLL(..) returns wrong tilt angle
2472 807307-3 DataFile: calling setSubRecords(..) with empty String
2473 807308-3 GControl: text draws outside of widget if size is reduced
2474 807315-3 FileName/FileUtil: needs new utility functions and docs updates
2475 807316-3 PLOT: ExportImage message does not work with an AUX specified
2476 807319-3 FileName: error accessing FullName from macro/shell
2477 807322-2 PLOT: OpenFile message needs better docs and minor code updates
2478 807326-3 PLOT: cuts off values equal to lower limit of the range
2479 807327-3 PLOT: nothing displays if Y2 <= Y1
2480 807329-3 Theme: button state reversed in some themes
2481 807330-3 HOMEPATH: Set to track CWD
2482 807333-3 FILES / TERMINAL: Have option to not search all of READ AUX
2483 807350-3 Update ELPS docs in NXM User's Guide
2487 808154-1 Data.promoteType does not properly support 'X' type
2488 807475-3 PLOT: LayerT5 cuts off parts of polygons
2489 666936-19 MJFrame / MWindow: macro icon status not set when iconified with mouse click
2490 808158-1 GCONTROL: GDialog missing button "callback" in message
2491 808390-1 Args / Macro: "!" incorrectly treated as comment when within String
2492 808439-1 LayerT5: setCone(double[]) incorrectly calls setElipse(..) instead of setCone(..)
2493 807494-3 HISTOGRAM: histogram is broken
2494 807602-3 PLOT: Axis titles wrong when changing type
2495 807558-3 FFT: Wrong units on output when /1D specified
2496 808647-1 MWindow: /WTITLE= does not set window title for SHELLGUI / LIST by itself
2497 807622-3 BaseFile.getQualifiers() should not return null
2498 807741-3 XBC: calling m_promote_format gives undefined symbol
2501 809300-1 XBC: xmlibc.c f2jstr and fsw2jstr can fail when input string is larger than 160 chars
2504 808273-1 Plot / MPlot: expand ViewLimits and OuterLimits to accept "_MIN,_MAX" names
2505 807740-3 Plot: occassional errors in axis labels
2506 807581-3 RESULT: Store the count of results that match a filter
2507 807490-3 WAVEFORM issues with WHITENOISE output
2508 807942-3 Not a Bug: LIST2: clicks on list no longer can populate widgets
2509 809317-1 Infinite loop takes 100 percent of the CPU when DISPLAY is not set
2514 808018-3 OPT: Missing ")" in print out
2515 808052-3 VNCVIEWER: Missing documentation in explain file
2516 807898-3 FFT: needs more details regarding <WIN> in explain file
2517 807292-3 DataFile: Does not build cleanly in NXM 3.0.0
2518 807624-3 BaseFile: Need a way of specifying default qualifiers
2519 807626-3 Move mature DSP comands from UCL to DSP option tree
2521 810179-1 ABSCISSA: command dictionary entry
2523 81880-1 XBC: m_spa does not return proper value
2524 810156-1 PLOT: MPlot.refresh(..) add null check for dbimage inside if (useDB) block
2525 809218-1 CONVERT / GraphicsUtil: createImageFile(..) does not handle CF/MAG data
2526 807954-3 Duplicate of Bug 2496: PLOT: ignores /WTITLE= when READOUT=-OnTitle
2527 808053-3 VNCVIEWER: support <host>:<disp> syntax
2528 808213-3 Incorrect units cited in Constants.java for METERS2DEG and DEG2METERS
2529 808017-3 POPUP / THEME: Graphics initialization missing from POPUP command
2530 808206-3 KEYWORD: Missing explain file entry (and test case) for FPUT
2531 N/A CONFIDENCE: should propagate /baseline, /interactive, and /debug to all executed test sub-macros
2533 808318-3 CALCULATOR: explain entry for CLIP performs opposite operations

Deprecated Functionality

The following functionality has been deprecated and will be removed from future versions:
Command Deprecated Item Replacement Deprecated
Since
FEATURE Use of LABEL= inside the table of options Use TEXT= 2.3.0
PLOT ZOOM and DRAGBOX messages accessed with msg.data(0), msg.data(1), etc. Use msg.data.xmin, msg.data.xmax, etc. 2.3.0
STATISTICS IMEAN= MEAN= (contains real and imaginary values, see explain file) 2.3.0
CONVERT The XML2TBL and TBL2XML functions. Use XML2TAB and TAB2XML. 2.5.0
UPDATE Command dictionary entries without '*' denoting minimum allowable abbreviation. Inlcude a '*' at the end of the command name in the dictionary if no abbreviation is allowed, otherwise note abbreviation as desired. 2.5.0
TextFile Automatic enabling of NOABORT flag. Use NOABORT or FORCEABORT flags as required. 2.5.0
TextFile Automatic conversion of INOUT flag to OUTPUT when file not found. Use INOUT or OUTPUT flags as required. 2.5.0
Results Use of A: with results. Use S:, behavior of A: will change in future releases. 2.5.2
DataFile Use of CREATOR= main header keyword. Use IO= and VER= keywords. 2.5.3
IF Numeric comparison assumes scalars without warning. Use EQ/? (see IF explain file for details). 2.7.0
ERMIF / ECONTROL These commands are user contributed and have been unsupported, untested, and unused since it was added to the baseline. It has been moved to the UCL option tree, but is slated for removal in the future. Use RMIF 2.9.2
AMFSYNC / KAISWIND / TRACKSUB These commands are now considered "mature" and have been moved from the UCL option tree to the DSP option tree. As such, the UCL versions are deprecated and no longer supported. Use DSP versions 3.1.0
As of release 2.2.0 LIST is considered to be an "End of Life" primitive. The LIST primitive is scheduled for replacement by LIST2 in future releases.
See $NMROOT/htdocs/api/sys/deprecated-list.html for a list of deprecated library methods.
Deprecated functionality will continue to function for one year or two stable releases after first being marked as deprecated, but its use may result in a deprecation warning (either at compile time or run time). After one year, any deprecated functionality is subject to removal.

(Back to Release Notes Summary)