Go to the first, previous, next, last section, table of contents.


Changes from Version 2.2.0 to Version 2.3.0

*
When reading from a file (or a pipe) SM won't trap ^c
*
Commands are now put on the history list even if you run with -s or -S.
*
The history editor is now active when you have entered a partial command (e.g. macro hello {). There is a different prompt, which you can change by defining $prompt2.
*
The primary and secondary prompts can be set by specifying prompt or prompt2 in your `.sm' file.
*
In a graphcap SY string, if a positional parameter is called (e.g.) $[3] instead of $3 there's no complaint if it is missing.
*
You can now say !expr just like in C
*
Two new `number' operators in TeX strings, \multiply and \divide. Both multiply (or divide) by the argument/1000.
*
You no longer need the parentheses in vec[(1+2)]. This might be thought of as a bug fix.
*
A side effect of the previous item is that whereas define v vec[0] used to be accidently legal, you must now say define v (vec[0]).
*
LWEIGHT is now a floating point number
*
The graphcap encoder now has limited support for floating point numbers; specifically you can use `%e', `$f', or `%g' to format the bottom of the stack, and `|' to convert the bottom of the stack to int.
*
New `|' variables swidth, sheight, and sdepth give the (pixel) size of the last string drawn.
*
PUTLABEL 0 str doesn't draw anything, but does set the string dimensions (and any TeX definitions are remembered).
*
Commands that draw strings now leave the plot pointer on the baseline at the right of the last character drawn.
*
You can give AXIS vectors of values where you want the small and big ticks, thereby finally relieving us of the need to make TICKSIZE infinitely complicated. You can even provide a string-valued vector to specify the labels that you want written.
*
There are two new SM variables x_gutter and y_gutter that are used to modify the spacing between boxes left by the WINDOW command.
*
You can now specify a font size along with a type in default_font, e.g. \ti\bf\it\2.
*
WRITE can now append to a file by saying WRITE + filename.
*
SUM is now implemented using a double precision intermediate value.
*
There is a new operator RANDOM to generate uniformly distributed random numbers. The seed can be set with SET RANDOM.
*
Any combination of string- and arithmetic-vectors is now allowed in SORT.
*
If you define $save_read_ptr, the current READ pointer is saved, allowing faster sequential access to a file.
*
You can specify a range of columns to be used for reading numerical vectors.
*
Macro files may contain left-justified comments within macros which are not included in the macro, but processed at read time.
*
The hidden surface code (VIEWPOINT and SURFACE) now works. The C is based on a set of SM macros written by Gabor Toth.
*
There are a set of SM macros for use with the new surface commands; say load surfaces if you want to use them.
*
If the environment file specified by -f filename on the command line starts with a /, no search path is used. Note that this means that you can't inherit entries from other `.sm' files.
*
Argument parsing for DEVICE commands now understands quotes, e.g. DEVICE x11 -title \"Hello World\".
*
You can now call the SM parser from your own code. There is also a function to declare your arrays to SM as vectors. Examples have been added to the `callable' directory.
*
If VERBOSE is one or more, you'll be warned if the axis labels are expected to overlap the ticks (and a solution is suggested).
*
If a macro isn't found, the macro macro_error_handler is called with 2 arguments; the first is NOT_FOUND and the second the name of the macro. If the variable missing_macro_continue is defined (maybe in your `.sm' file) the behaviour is unaltered.
*
There is a new command USER ABORT that forces SM to think that a syntax error has occurred.
*
If you retrieve that last history command with ^$ or ^^ you will always get the last command, even if it doesn't appear on the history list; using the arrow keys or ^P still gets you the previous remembered command.
*
There are macros to support greyscale plots (glevels and greylevel)
*
The vms_var filecap entry has been changed, and so has the documentation on how to write out image files under VMS Fortran. For variable recordtype files, you must specify recordtype='variable', and not give a record length. This seems to work for VMS 5.x, but Robert has only been reluctantly persuaded that my "bug fix" in this case is any more than sleight of hand, so you are free to complain vociferously (to monger@mcmaster.ca) if this causes problems.
*
SM now supports metafiles via the pseudo-device META and the command META READ file.


Go to the first, previous, next, last section, table of contents.