Gri: History of Changes

Evolution of Gri 1: Introduction 2: Simple example 3: Fancy example 4: Running Gri 5: Programming Gri 6: General Issues 7: X-Y Plots 8: Contour Plots 9: Image Plots 10: Examples 11: Handling Data 12: Gri Commands 13: Gri Extras 14: Evolution of Gri 15: Installing Gri 16: Gri Bugs 17: System Tools 18: Acknowledgments 19: License 20: Newsgroup 21: Concept Index | ## 14.4: History of Changes Some versions differ from others only in having bugs fixed; these are only documented below if the bug was important. The visible changes listed below are grouped into changes which do not affect old code and those which do affect old code. Compatible Changes: Changes which don't hurt old programs Incompatible Changes: Changes which might hurt old programs Plans: Plans for future versions ### 14.4.1: Additions that don't break old code #### 14.4.1.1: Version 2.4.x Stable-release stream based on version 2.3.7. 2.4.4 [2000-May-07] 1) Change so that only a warning is printed if mathematical operations are requested on empty arrays (e.g. ``y += 10`'). Previously, an error was reported and Gri exited with an error condition, which is bothersome in scripts that rely on successful completion of the Gri job. 2) Port to the BeOS operating system. 2.4.3 [2000-Apr-01] Change location of all files, to be consistent with Redhat convention. Previously, things were in ``/opt/gri`'; now they are in more standard locations. 2.4.2 [2000-Mar-25] Remove bug in which ``convert grid to image`' produced incorrect images, visible as a patchy appearance with coarse grids. 2.4.1 [2000-Jan-31] Remove bug in which ``convert image to grid`' failed to take note of the gri minimum and maximum, so that contouring of the grid was not possible for grids created from images. 2.4.0 [2000-Jan-05] Add ``set input data separator`'. Make ``read columns`' work with various input separators. Make ``read .x.`', etc, work with various input separators. #### 14.4.1.2: Version 2.2.x Stable-release stream based on version 2.1.21. 2.2.6 Make web-based manual easier to read by putting a light-grey background under sample code. 2.2.5 Fix bug in RPN calculations that prevented using a negative exponent. 2.2.4 Add ``set font encoding`', and also change the encoding to ISO-Latin-1. (This doesn't hurt old code since Gri didn't make any claims to handle characters outside the normal printing-set before anyway.) Fix bug in which there were 4 dead links in the HTML version of manual. Clean up some problems with Debian distribution (thanks, Peter Galbraith!). 2.2.3 Fix bug in which word-of-synonym (e.g. ``\[0]mysyn`') was not detected correctly (thanks to bug report from Kazuhiko Nakayama in Japan) see Accessing Individual Words Within Synonyms. 2.2.2 Clean a few spelling and cross-reference errors in documentation. 2.2.1 For debian, properly locate the ``netcdf`' library, if it is installed. Remove remnants of old commands for polar axes. Correct error in which the right-most and upper-most pixel of images created by ``convert grid to image`' may be blank (or not, depending on roundoff error) under certain conditions of exact matchup between grid spacing and image spacing. Don't create PostScript file if the commandfile is non-existent, or if there were errors on the commandline. 2.2.0 First debian release. Versions exist for intel, alpha, 68K and powerpc. #### 14.4.1.3: Version 2.1.x 2.1.21 Gri no longer accepts multiple commandfiles separated by commas. Also, don't search for commandfiles in the search path. 2.1.20 Make conversion to/from polar coordinates function properly see Convert Columns From Rectangular to Polar. (Thanks to Carl Osterwisch.) Decent axes for polar plots are still missing though. 2.1.19 Make ``convert grid to image`' follow same interpolation algorithm as is followed in contouring. (The old scheme used a polynomial interpolation.) 2.1.18 Add Debian linux distribution. Skip any control-M characters that appear at the ends of lines in command files. (PC-type systems sometimes insert these characters, as do some mailer programs.) Make linux-redhat version store nearly everything in the ``/opt/gri`' directory, instead of in the ``/usr`' directory. 2.1.17 Test port to linux (Redhat distribution). Remove ``set map projection`', which was somewhat broken and would not be supported in its present form. 2.1.16 Increase accuracy of bounding-box in the PostScript file. 2.1.15 Allow ``set bounding box ...`' to take centimeters as well as points and unser-units. Add ``set line join`'; make default be 1, not the 0 it was lately. Make ``draw symbol \name color hue z`' automatically restrict the hue to the valid range of 0 to 1, by clipping to these limits. (Some PostScript viewers, e.g. ghostview had trouble otherwise.) Make regression report 95 percent confidence interval, instead of "standard" errors. Make RPN operations on grids (e.g. ``rpn grid mean`') obey legitimacy of regions of the grid as set by non-PostScript clipping. 2.1.14 Internal changes to aid in port to HP. 2.1.13 Streamline binary installation. Make it locate the startup message even if installed in a nonstandard directory. 2.1.12 Add the option to avoid drawing small tics on logarithmic axes see Set X Axis. Internal change to contouring, to prevent tracing zero-length contour segments. Depending on the application, this may reduce PostScript file size by a factor of up to 3. 2.1.11 Make it so that ``new page`' retains the current font. 2.1.10 Internal change: modify how `templates' are handled, for the GNU C++ compiler only. The change is to make use of the GNU C++ compiler ``-frepo`' flag, but only optionally. The flag is required on Silcon Graphics computers but it causes linkage failure on both Solaris and Linux computers. Therefore the ``configure`' script checks for the existence of the flag, but asks the installer whether (s)he really wants to try using it. An ugly mess, indeed. 2.1.9 Create a default grid, if ``convert columns to grid`' is done before the user specified the grid geometry see Convert Columns to Grid. In ``convert columns to grid`' use the `barnes' method as the default, since it is now much faster than before. Switch to use the C++ standard library (internal change only) 2.1.8 Add ``set line width all`' command see Set Line Width. Change the method used in ``convert columns to grid barnes`', using bilineaer interpolation instead of barnes interpolation, at the data points. This converts it from a ``O(n*n)`' scheme (where ``n`' is number of data points to a ``O(n)`' scheme. For example, on a 10 by 10 grid, it speeds up gridding of a dataset with 10,000 points by a factor of 150. For a dataset 3 times larger, the speedup is by a factor of 350. To put this into context, on a Sun workstation rated at 65 SPECfp92, a run with 30,000 data points on a 10 by 10 grid is speeded up from 1 hour and 47 minutes to 20 seconds. Change the method used in ``convert columns to grid barnes`', using an approximation to the exponential function (based on from Abramowitz and Stegun, eqns 26.2.1 and 26.2.21). The grids produced are accurate to 0.1 percent, and the execuation is 2.5 to 3 times faster (in tests on a Solaris machine.) Change ``convert columns to grid neighbor`' so that it stores into a given grid-point the z-value of the data (x,y,z) triplet (column data) that is closest to the grid point. This is an incompatible change see Incompatible Changes. 2.1.7 Add ``set line cap`' command see Set Line Cap. Permit double-quotes around format string in ``set contour format`' see Set Contour Format. 2.1.6 Add ``set bounding box`' command see Set Bounding Box. Print warning if that version number embedded into the startup file (gri.cmd) fails to match that hard-wired into the executable. 2.1.5 Make the PostScript output a little smaller (few percent, worst-case), and a little more accurate (bounding box with rotated text is now much more accurate). 2.1.4 Prevent ``smooth grid data`' from filling in the grid in places where the smoothing interval encloses missing data. Also, do a better job of collecting repeated warning messages 2.1.3 Make various the warnings for drawing of offpage points be devoid of the actual (x,y) location, so that the warnings will be identical. This prevents printing the warning multiple times; instead a message about number of identical warnings follows the initial warning. 2.1.2 Make ``draw symbol at`' obey clipping. 2.1.1 Create more accurate PostScript bounding box for ``draw title`'. 2.1.0 Use new numbering scheme, following linux convention. #### 14.4.1.4: Older Versions Version 2.070 Add ``-warn_offpage`' commandline option. Version 2.069 Add ability to compile under OS/2 operating system. Change ``smooth grid data`' to not attempt to fill in missing-data voids. Add ``HelveticaBold`' font. Make ``show grid`' better. Make ``read grid data`' work on binary files. Version 2.068 Minor bug fixes. Version 2.067 Remove bug, from 2.065 and 2.066, in which ``\synonym = system ...`' gave a newline character at end of synonym. Improve accuracy of positioning of ``draw title`' labels. Version 2.066 Remove bug, from version 2.059, in which column mathematics changed the axes scales of yet-to-be-draw axes, even if the user had specified the axes manually. (Now the axes are only changed if they are to be autoscaled and if they are not drawn yet.) Add two builtin variables for linear regression, ``..coeff0_sig..`' and ``..coeff1_sig..`'. Version 2.065 Internal change: improve accuracy of timing functions, using POSIX subroutines. Add ``frac`' rpn operator. Version 2.064 Add ``draw symbol [.code.|\name] graylevel z`' command, to complement the ``draw symbol [.code.|\name] color z`' command. Version 2.063 Add capability to read netCDF objects of either ``float`' or ``double`' type. Version 2.062 Internal changes only, to port to DEC alpha, convex, and other computers using up-to-date GNU compiler (2.7.x). Version 2.061 Give error if try to do math on column with no data in it. Version 2.060 Speed up ``convert columns to grid`'. The speedup is dramatic on a large factor on large datasets, e.g. for 500 points the processing time is reduced by 100. Version 2.059 Add capability to update axes ranges if math operations are done on the columns (provided that axes have not already been drawn). Version 2.058 Add ``size`' rpn operator, to find the size of columns and grids, ignoring data which are missing. Make the PostScript bounding-box be correct in landscape mode. Version 2.057 Add synonym ``\.lib_dir.`', pointing to library directory where ``gri.cmd`' and other files reside. Version 2.052 Make ``draw grid`' only draw symbols at legit points. The result is much easier to understand for dense grids. Version 2.051 Make ``delete columns where missing`' update ``..num_col_data..`' and ``..num_missing_col_data..`' variables. Add ``rpn`' operator ``interpolate`', to interpolate in grid data. Interpret string ``Infinity`' as infinity, in addition to the existing interpretation of ``Inf`'. (The longer form is used by the C++ programming language, as opposed to the C programming language.) Version 2.050 Allow ``set dash`' to take any number of draw/blank lengths. Note: the internal variables ``..dash_length..`' and ``..blank_length..`' are no longer set (but they were never documented anyway, so I don't consider this to break old code). Version 2.049 Add ``interpolate x|y grid`' command. Version 2.048 Fix recent bug in ``read .synonym.`', which got confused if the data line contained extraneous stuff following the number. Version 2.047 As first step toward internal calculation of bounding box, insert a comment in PostScript file to indicate the approximate bounding box; users might want to try editing the file and moving this line up to the start of the file, as indicated. (This allows LaTeX to calculate the diagram size more easily; see for example the ``aguplus`' documentation.) For example, if the line
    % Suggested %%BoundingBox: 46 31 643 347
was found at the bottom of the file, then the line
    %%BoundingBox: 0 0 612 792
near the top of the file should be replaced by
    %%BoundingBox: 46 31 643 347
Version 2.046 Undocumented steps toward bounding box (see 2.047). Version 2.045 Add font ``ZapfChancery`' (removed in version 2.3.1/2.2.4 since it appeared not to be present in various linux utilities) Add ``show hint of the day`'. Version 2.044 Add rpn operators ``linear_slope`' and ``linear_intercept`'. Add rpn operators ``roll_left`' and ``roll_right`'. Add ``set z missing above|below .intercept. .slope.`'. Version 2.043 Add ``set grid missing inside|outside curve`'. Version 2.042 Remove bug in 2.040 and 2.041, in which netCDF data were read incorrectly. Version 2.041 Add ``weight`' column, and make ``convert columns to grid barnes`' use it to weight individual ``z=z(x,y)`' data. Version 2.040 Make all internal storage double precision instead of single precision. Change directory structure. Add ``-directory_default`' commandline argument, mostly for internal use by gri-mode see Emacs Editing Mode. Version 2.039 Make minor changes to increase portability across various versions of the GNU compiler. Version 2.038 Remove ``read word`' and add ``read line`'. This is not an incompatible change because ``read word`' and ``read \synonym`' previously acted incorrectly. Version 2.037 Repair bug making stereopolar maps (``Set Map Projection`') appear in wrong place on page. NOTE: map projections removed in version 2.1.17. Version 2.036 Add ``_=`' mathematical operator (to take logs to any given base). Remove ``set text angle`'. This breaks no old code because it had never been implemented anyway. Version 2.035 Add ``set panel`' see Set Panel. Add ``set panels`' see Set Panels. Add ``set error action`' command see Set Error Action. Add ``\.missingvalue.`' (same as ``.missingvalue.`'). Version 2.034 Bug fixes. Version 2.033 Make ``\.command_file.`' be just the filename, without directory name. Version 2.032 Bug fixes. Version 2.031 Fix very recent bug in ``draw line from ... to ...`' making it disobey dash properteries under some conditions. Version 2.030 Add ``set map projection peters`'. NOTE: map projections removed in version 2.1.17. Version 2.029 Fix very recent bug making first ``draw label for last curve`' command draw label in wrong place, if axes had not been previously drawn. Version 2.028 Interior changes involved in porting to DEC alpha. Version 2.027 Add ``set arrow type`' command see Set Arrow Type. Add ``show stopwatch`' command see Show. Add ``$()`' style system commands, as replacement for backtic style; see see Using OS Inside Gri. This notation is preferable to backtic notation because it can be nested. Version 2.026 Change default PostScript filenames from e.g. ``gr.ps00`' to ``gri-00.ps`' Add ``-no_startup_message`' commandline option. Add ``ismissing`' rpn unary operator. Add ``show colornames`' command. Add ability to have ``N`' or ``S`' in ``set x type map`' commands, or ``E`' or ``W`' for the y axis see Set X Type. Add ``draw isospice`' command see Draw Isospice. Add ``draw gri logo`' command see Draw Gri Logo. Add ``convert columns to spline`' command see Convert Columns to Spline. Add check so that repeated warnings are not reported, only the first occurance and the number of repeats. Add ability to rotate the colorbar created by ``draw image palette`'. see Draw Image Palette. Add ability to handle input data lines of any length, up to limit of computer storage. (There is still a limitation on number of words per line though, currently 4096, although this limit will be removed soon.) Version 2.025 Add ``SUP`' and ``INF`' binary rpn operators. see rpn Mathematics. Version 2.024 Various bug fixes. Version 2.023 Make ``write contours to \file`' properly put missing values separating islands in contours. Version 2.022 Add secret flag ``set flag jinyu1`' see Set Flag. Version 2.021 Add ``show flags`' command (for developers and colleagues only). Add ``set flag`' command (for developers and colleagues only). Add check in ``regress`' for fewer than 3 good data, in which case don't try to display confidence intervals on slope and intercept. Version 2.020 Add ``area`' rpn operator. Version 2.019 Fix bug in ``help`' introduced at about version 2.017. Version 2.018 Add ``show color`'. Version 2.017 Bug fix from 2.016, in ``delete grid`'. Version 2.016 Add ability of ``while`' to indicate each 1000 passes through the loop, if ``-chatty`' is nonzero. This helps prevent unintended infinite loops. Version 2.015 Add beginnings of cross-validation for Barnes gridding (not documented yet; contact author). Add ability to dump core on certain errors, thus allowing the user to get a traceback see Error Messages. Add ``[]`' syntax for extracting words within synonyms. Add ``\.return_value.`' builtin synonym, and define these return values:
    Command                 \.return_value.
    =======                 =========================================
    read columns ...        N rows N non-missing N inside-clip-region
    read grid x ...         N cols
    read grid y ...         N rows
    read grid data ...      N rows N cols
    system ...              N status
Version 2.014 Add ability of ``draw curve filled`' to handle curves with more than the PostScript limit of 1500 points. This is done by iterative removal of nearly colinear points. Add ability of ``draw curve filled`' to handle missing values (by drawing filled islands). Version 2.013 Add unix-style backtic expansion. (This feature removed in 2.027, replaced by the equivalent but more powerful and intuitive dollar-parenthesis notation see Using OS Inside Gri.) Add ``separation .dist_cm.`' option to ``draw values`'. Add ``delete columns where missing`'. Add ``delete columns randomly .fraction.`' command, useful for cross-validation studies. Version 2.012 Add ``set grid missing`' command, which is useful for Barnes gridding especially, since it fills the whole grid. Version 2.011 Add ``Barnes`' method of converting columns to grids. Version 2.010 Fix a very recent bug in ``while`' that sometimes led to segmentation faults. Version 2.009 Add Symbols ``\cdot`', ``\vartheta`', ``\varsigma`', ``\varphi`', ``\oplus`', ``\otimes`', ``\aleph`', ``\wp`', ``\prime`', ``\emptyset`', ``\angle`', ``\neg`', ``\clubsuit`', ``\diamondsuit`', and ``\spadesuit`'. This completes the list of TeX symbols that are available in the Symbol font used by Gri. Version 2.008 Add Greek letters ``\phi`' and ``\Phi`'. Version 2.007 Internal changes only. Version 2.006 Internal changes only. Version 2.005 Add optional keyword ``appending`' to ``read columns`'. Version 2.004 Add ability for ``read \synonym`' to read netCDF ``attributes''. Add ability to read FORTRAN double-precision numbers (those with ``D`' in them). Version 2.003 Recode in C++ programming language. This will create temporary bugs but should increase eventual robustness and power. Version 2.002 Allow for compilation on MSDOS machines, without hand-editing files. Version 2.001 Add ability to read from ``netCDF`' binary files. Change builtin variable ``..R^2..`' to new name ``..R2..`' to allow more sensible parsing. Version 2.000 Add a ``grestore`' PostScript command if the user forgot to turn off PostScript clipping; otherwise, ``grimerge`' has a problem postprocessing the file. Change so that math is allowed on columns, even if they don't exist. This makes more sense; why should the program die just because a particular file had all missing data or clipped data? Add ``read colornames from RGB \file`'. Add builtin variables ``..red..`', ``..green..`', ``..blue..`'. Fix bug in ``draw label boxed`', allowing it to work with any base color. Version 1.070 Add ``input`' command, to input PostScript code from a file directly into the Gri output PostScript file, with ability to translate, scale, and rotate. Add ``stddev`' rpn function, to find standard-deviation of a column or grid. Version 1.069 Add C-style comments of the form
    /*
    line(s) to be commented-out
    */
Note that inline comments are not allowed; it is neccessary that the ``/*`' and ``*/`' appear on lines by themselves. Version 1.068 Add better traceback information on errors. Version 1.067 Fix very recent bugs preventing ``write image`' from writing anything more than a header. Version 1.066 Add ``set page translate .xcm. .ycm.`' Add ability to nest ``while`' loops Version 1.065 Add reporting of location of errors in commandfiles. Add ``xyusertocm`' and ``xycmtouser`' rpn operators (only way to convert in non-rectangular map projections). Add ability to do ``while`' loops inside new commands. Add ability to do ``system ... <<`' within new commands. Caution: if the system command has a line matching with a closing curly brace in the first column, Gri will interpret this as the end of the new-command. So make put a space before any line like that. Add ``set map projection stereopolar .x0. .y0.`' for stereopolar map projections. NOTE: map projections removed in version 2.1.17. Add ``set x|y type map E|W|S|N`' for better format on maps. Version 1.064 Add To ``draw symbol`' the ability to code the ``saturation`' and ``brightness`' into the z-column, in addition to the ``hue`'. Add Full filename of commandfile in ``draw time stamp`'. Add ``filter grid rows|columns recursively`'. Add ``set x|y axis unknown`'. Add rpn commands to access min, max, and mean of grid data, e.g. ``{grid min}`'. Add Simple error checking to ``read image rasterfile|pgm`'. Add ``bycolumns`' option to ``write grid`' command. Add ``smooth grid data along x|y`'. Add ``convert grid to columns`'. Add ``delete columns`'. Add ``differentiate grid`'. Version 1.063 Add dotted lines (via dash styles numbered 10 and 11). Add ``convert image to grid`' see Convert. Version 1.062 Add ``\synonym = tmpname`', a way to get the name of a temporary file guaranteed not to clash with any other temporary files. Add ``read word`' command; removed in version 2.038. Version 1.061 Add ability to have semicolon in a command, not designating two separate commands; do this by preceding by backslash. (Note: the semicolon feature removed in version 1.064.) Add a check at termination time, for any variables and synonyms which were assigned to or created by ``new`', but which were never used. Add list of acceptable items to ``query`' see Query. Repair the functioning of `system ... << ...' command see System. Version 1.060 Add PGM output of images see Write. Version 1.059 Repair bug in accessing individual elements of columns with the RPN command. Version 1.058 Remove warning if no ``expecting version`' command is found. Version 1.058 Add ability of ``while`' to make tests, as in ``while {rpn .i. 10 > }`' (which repeats until ``.i.`' equals or exceeds 10). see While. Version 1.057 Add ``draw contour .value. to \filename`' Add math symbols ``\langle`' and ``\rangle`' Repair bug in ``draw circle with radius .r_cm.`', so that now ``.r_cm.`' is interpreted as radius instead of diameter. Add ``set contour label for`'. Add ``set contour label position centered`'. Version 1.056 Allow nested ``set clip postscript on`'. Version 1.055 Repair very recent bug that allowed attempted drawing of zero-size text (which Sun's viewer and printer accepts, but which ghostscript dislikes). Version 1.054 Add possibility for multiple statements on one line, separated by semicolons. (NOTE: this feature removed in version 1.064.) Add Make ``draw image palette`' obey ``set x format`'. Version 1.054 Never released; author's copy only. Version 1.053 Repair bug where y-axis on image histograms was misplaced. Add allow setting of negative margins. Version 1.052 Add rpn function ``=`', for assigning to variables and synonyms Add rpn functions ``atof`', ``strcat`' and ``system`'. Add rpn output as string. Version 1.051 Bug fixes only. Version 1.050 Repair ``set image missing value color`', which used to do nothing. Also, Change the default color for missing parts of the image to white, instead of the black that it was for the last few versions. Remove the ``function`' and ``show functions`' commands, since they are superceded by the more powerful ``rpnfunction`' commands. Remove All ``functions'' (``defined()`', ``width("string")`', ``ascent("string")`', ``descent("string")`', ``column_min()`', ``column_max()`', and ``column_mean()`'). These are superceded by rpnfunctions of the same names. Add rpn operators ``dup`', ``pop`', ``exch`', ``pstack`', ``column_min`', ``column_max`', ``column_mean`' Version 1.049 Add builtin ``rpnfunction`''s ``width`', ``ascent`' and ``descent`', as replacements for old-style ``width(string)`' etc. Add ``rpnfunction`'. Add ``read image colorscale`'. Add ability to ``read image grayscale`' a line at a time, instead of requiring all 256 numbers on one line. Add ``mask image`' command to permit alteration of image under the mask. Add reading of ascii PGM (Portable GrayMap) files in addition to binary PGM files. Version 1.048 Add ``GRIINPUTS`' unix environment variable and capability for Gri to search a directory list for commanfiles. Also, Add a few preliminary library files (e.g., ``/usr/local/lib/gri/10pt.gri`'. Add ability to a sequence of commandfiles. Add Ability to specify input to ``query`' commands on the commandline, via the ``SIMULATED_INPUT`' mechanism. #### 14.4.1.5: Version 1.047 Add ``read image pgm ...`' command. #### 14.4.1.6: Version 1.046 Add ``reorder columns ...`' command. Version 1.045 Add builtin synonym ``\.awk.`', which is set to the first awk program present on your machine, taken from this list: gawk, nawk, mawk, awk. All internal usage of ``gawk`' has been changed to use ``\.awk.`' instead. Version 1.044 FIX bug in ``open "... |"`' which prevented synonym substitution if unmatched $ signs precede the synonym. Version 1.043 Add writing of image map into PostScript file, and Change how the image is written there, so that the raw image values are written, not the remapped values. This allows system-level tools to extract the original image from the PostScript file. Add to ``convert columns to grid`', ``convert grid to image`' and ``draw contour`' a display of the time likely to be required to finish the conversion, provided that the ``chatty`' flag exceeds 0, and also that the total estimated time exceeds 20 seconds. Add better error detection to ``convert grid to image`', adding capability to catch old syntax (the presence of the ``white`' and ``black`' keywords, no longer allowed), and demand that ``box`' takes exactly 4 parameters. Add a check for mis-spelling ``set x name`' as ``set x label`'. Add detection of archaic usage to ``convert columns to grid`' (ie, die if the old ``planar`' method is attempted). Version 1.042 Internal changes only. Version 1.040 Add commandline option ``-noexpecting`', to prevent display of warning if the ``expecting version`' command is not present. Version 1.039 Repair bug in ``read columns .num_to_read.`' which prevented counting data outside a window set by ``set input data window`'. Add Rapidograph pen-names to ``set line width`'. Add ``convert columns to grid neighbor`', which was removed in 1.033. Version 1.038 Add ``draw text whiteunder`' Add ``set graylevel white`' and ``set graylevel black`'. Version 1.037 Add ``increment .im_value.`' option to ``set image colorscale`', to allow for quantized colorscales. Add ``set image colorscale \color_name .im_value. \color_name .im_value.`', to allow for named colors as endpoints of colorscales. Version 1.036 Add a warning if ``expecting version .version.`' has not been called. Version 1.035 Add ``show traceback`', and make errors call it. Add ``expecting version .n.`' Version 1.034 Add ``set font to Palatino`' and ``set font to Times`'. Version 1.034 Add ability of ``read grid x|y|data`' to figure size of grid by searching for blank-lines, EOFs, etc. Version 1.033 Add ability to ``differentiate x|y`' with respect to ``y|x`' as well as with respect to ``index`' Add math operation ``^=`' to take powers. Add ``rescale`' command. Add support for ``\n`' and ``\t`' in ``show`' command. RENAME ``-extract`' commandline option as ``-creator`'. Add ``open "system command|"`' command. Add automatic selection of smoothing lengths in ``convert columns to grid`'. Version 1.032 Add ``set postscript filename`'. Version 1.031 Repair a bug in images mappings. Version 1.030 Allow ``color`' to be spelt ``colour`' and ``gray`' to be spelt ``grey`'. Version 1.029 Add command ``smooth grid data .f.`', to do fractional smoothing of data to be contoured. Version 1.028 Add builtin variable ``..use_default_for_query..`'. Version 1.026 Add several arrows to math symbols. Version 1.025 Allow use of double-quote in ``set x|y format`', to allow use of the space-character in the format string. Version 1.024 Add color images with ``set image colorscale`' command. Version 1.023 Add ``set contour labels rotated|horizontal`'. Version 1.022 Add ``-no_cmd_in_ps`' commandline option. Version 1.021 Add ``set contour label position .start_cm. .interval_cm.`' command. Version 1.020 Add ``draw polygon`' command Version 1.019 Make x axis figure offset for label correctly, even if there are no numbers on the axis. Also, switch numbering scheme (yet again!) ### 14.4.2: Additions which may break old code Version 2.1.8 Change ``convert columns to grid neighbor`' so that it stores into a given grid-point the z-value of the data (x,y,z) triplet (column data) that is closest to the grid point. Thus, the grid becomes independent of data order, whereas before it was dependent on data order, and prone to damage along the edges by far-flung data. This suggestion was made by Dave Brickman. Version 2.050 Because of a change to ``set dash`', the internal variables ``..dash_length..`' and ``..blank_length..`' are no longer set. Version 2.040 Remove ``GRI_DIR`' environment variable, which had no extra function in addition to the ``-directory`' commandline option. Version 2.038 Remove ``read word`' command; make ``read \synonym`' function in the way ``read word`' had done, and add ``read line \synonym`' to fill the gap. (This breaks the old ``example10.gri`'; replace the line ``read \header`' with ``read line \header`'.) Version 2.027 Remove backtic notation for calling the operating system. Replace it with ``bash`' unix shell notation ``\(command)`'. Version 2.026 Change default PostScript filenames from e.g. ``gr.ps00`' to ``gri-00.ps`' Remove ``move to`' command. Remove ``draw line to`' command. Version 2.000 Change so that zero or negative data are allowed on a log axis. Previously, Gri used to switch to a linear axis, but now it considers the data as missing (recoverable by a switch to linear axis). Version 1.070 Change builtin variable ``..R^2..`' to new name ``..R2..`' to allow more sensible parsing. Version 1.064 Change so that multiple statements can no longer be put on one line, separated by semicolons. (This command was used by few people since the introduction in version 1.054, and it led to a lot of confusion in ``system`' commands.) Change name of rpn commands which select column statistics from e.g. ``@{rpn x column_mean@`'} to ``@{rpn x mean@`'}. Change output from ``show image`' and ``show grid`' to be more informative; also, don't print info if grid is too big. Change so that ``show`' commands produce warning message, not fatal error signals, if the item does not exist yet. Version 1.063 Change method of supplying default directory for TS diagram isopycnal data. Now use a unix environment variable, as in ``export GRI_EOS_DIR="/users/dek/kelley/data/EOS/iso0"`'. Version 1.062 Change ``write`' commands to append to end of file, if there is something in the file already. Version 1.059 Remove documentation on the commandline option ``no_expecting`', since the default is now not to report non-existence of the ``expecting version`' command. (The option now produces a warning.) Version 1.049 Change ``read image grayscale`' and ``write image grayscale`' to have the numbers range from 0 to 1, instead of from 0 to 255. Change ``insert`' to search for the file using the ``GRIINPUTS`' mechanism Version 1.045 Change so math-mode text strings do not italicize punctuation marks. Version 1.043 Change default linewidths from (0.25, 0.5, 0.25) for (axes, curves, symbols) to (0.369, 0.709, 0.369) = rapidograph numbers (6x0, 3x0, 6x0) Version 1.041 Change how search for startup file ``gri.cmd`' is done. Previously, the ``path'' was searched; now, the ``-directory`' is used, if that is given as a commandline option, or else a pre-defined directory (e.g. ``/opt/gri/bin`'), defined at compile time, is used. Version 1.037 Change ``draw image grayscale`' to ``draw image palette`', in keeping with the ability of this command to draw palettes for both grayscale and color images. Version 1.036 Change ``convert grid to image`' to require ``set image range`' to have been done previously. Also, now no longer accept the ``white`' and ``black`' options. Change ``read image`' to require ``set image range`' to have been done previously. Also, no longer accept the ``scale`' option. Change ``read image grayscale`' to require ``set image range`' to have been done previously. Change ``read image colorscale`' to require ``set image range`' to have been done previously. Version 1.034 Change math-mode text so that non-Greek letters are written in Italics, as in LaTeX. Version 1.033 Remove ``-quiet`' commandline option and add levels to ``-chatty`' commandline option; also Change some details of this chattiness behaviour. Remove ``convert columns to grid planar`' gridding method; use ``... boxcar`' instead. Remove ``convert columns to grid neighbor`' mehtod; was lousy anyway, and users can recreate it easily using awk or other shelltools. Version 1.027 Change so that contour labels are drawn not over a broken line as before, but rather over a solid line. Whiteout is now used under the label to give the illusion of a broken line. The old method is available with the new command ``set contour labels nowhiteunder`'. ### 14.4.3: Plans for future versions The list below is in no particular order. Please contact me at Dan.Kelley@Dal.CA if you particularly need one of these things, or if you need something else that I've not listed. Porting to more machines. (Most Unix platforms are supported, but Gri doesn't work at all on Apple platforms, and the Windows support is definitely not up to scratch. Better command-line interface, with history and editing as in Bash, Emacs, etc. (This may be built on the GNU Readline library.) Support for image types other than 8-bit. (This may be build upon the PNG library.)