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 ChangesSome 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.
14.4.1: Additions that don't break old code14.4.1.1: Version 2.4.xStable-release stream based on version 2.3.7.
14.4.1.2: Version 2.2.xStable-release stream based on version 2.1.21.
14.4.1.3: Version 2.1.x
14.4.1.4: Older VersionsVersion 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
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:
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
/* ' 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.047Add `read image pgm ... ' command.
14.4.1.6: Version 1.046Add `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
14.4.3: Plans for future versionsThe 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.
|