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


Changes from Version 2.0 to Version 2.1

Note that the programme's name has been changed to SM, that the default directory name is now `sm', and that the `.smongo' file is now called `.sm'.

Changes to do with making SM:

*
Compilation options are now in a file src/options.h rather than in the Makefiles.
*
The compiled graphcap entry format has been changed; you must rerun `compile_g'.

Changes to do with history and the editor:

*
Syntax errors now report the macro in which they occur. Beware that this may be incorrect, if the macro has already been fully scanned.
*
If VERBOSE is 1 or more, report the line that arithmetical errors occur on (e.g. mismatched dimensions, lg(0)).
*
You can now choose your history character (default: ^). This may be useful for TeX strings, I use `.
*
You can go to the start or end of a macro/the history list with ESC-< and ESC->. Use ESC-g to go to a line number.
*
You can no longer type a space after the history character to insert it into a line -- use quote_next instead (e.g. ESCq^).
*
Lines starting with a # in READ EDIT files are comments
*
In `.sm' files comments run from a # to the end of the line.
*
The various DELETE HISTORY commands now have siblings that omit the HISTORY and do not themselves appear on the history list.
*
The way that DO, FOREACH, IF, and MACRO command lists are treated has been fixed. If VERBOSE is 5 or more such lists will be printed as they are scanned.

Changes to do with macros:

*
The command APROPOS lists all macros whose names or initial comments match a given pattern.

Changes to do with variables:

*
Variables given in <> or {} are no longer tokenised, so spaces will no longer appear in funny places.

Changes to do with vectors:

*
You can now specify a printf-style format string to PRINT
*
The command SET name = macro(vector) has been changed. Previously only one argument was permitted, but it could be an expression, and the result was returned by assigning to $1 in a rather confusing way. Now many arguments are permitted (but they can't be expressions), and the result is returned as $0. See SET in the manual for more details.
*
It's possible to FFT vectors (actually pairs of vectors for the real and complex parts).
*
String valued vectors have been added to SM. They may be read from files (either by the row or by the column), printed, assigned to, tested for (in-)equality, and used to set the PTYPE. In the latter case the strings are used to label the points.
*
the SET DIMEN(vec) = expr statement has been altered, so the right-hand expression must be a number (with an optional suffix to denote a string-valued vector).
*
You can now define variables from IMAGE files (currently only supported for FITS), using DEFINE variable IMAGE
*
The expression vector[expr] has been generalised to allow expr to be a vector, so the result is now a vector of the same dimension as expr.
*
You can convert an expression into a string using STRING(expr).
*
It is now possible to specify that IMAGE files have no header, in which case you'll be prompted for the values of nx and ny (file_type no_header).

Changes to how plotting is done are as follows:

*
The values of TICKSIZE now make a difference for logarithmic axes.
*
The way you specify limits for logarithmic axes to AXIS is now consistent with the way you specify them to BOX. This Is A Change!
*
GRID now takes an optional second argument, specifying only an x or y grid
*
LTYPE ERASE allows you to erase some lines in a plot without erasing everything. This is only supported by some devices
*
ANGLE and EXPAND can now be given as vectors, to specify different angles and expansions for each point plotted
*
DOT will now work with user-defined ptypes
*
You can specify a PTYPE of a vector of strings.
*
The order of the default CTYPEs has been changed; you can now restore the default using the macro reset_ctype.

Changes to labels:

*
TeX strings now makes A_a^b put both sub- and super- scripts on the same symbol (use A_a{}^b if that isn't what you want)
*
A new bold (over-struck) \bf font is available.
*
If you define the variable default_font it will be used as your default font for labels (including for axes). You can define it in your `.sm' file if you so desire.
*
The position of the symbol for the constellation Taurus has been moved; this will not affect TeX_strings users. An Old English full stop is now a full stop.
*
`TeX definitions' are now specified in a file (and put into fonts.bin). This will not affect users, but does allow a SM administrator to add new definitions.
*
You can use \def to define your own TeX definitions.
*
You can specify more than 9 sides in TeX `point' or `apoint'
*
The `TeX' commands \raise and \kern are now available to move parts of strings about.
*
TeX-labels can now be put into variables without difficulty.

Changes to stdgraph:

*
A new encoder command `str` prompts you, then reads a character from the keyboard.
*
You can specify graphcap entries (or parts of graphcap entries) on the command line.
*
The 8th bit of graphcap entries is no longer stripped. To include an ascii null (\000) in an entry specify \377, a \377 may be written \377\377.

Changes to drivers

*
You can now specify options like -Ws to the sunview driver, use -WH for a list.
*
There is a new driver for a Unix-PC.
*
There is a new X11 driver (try DEVICE x11 -help for a list of options).
*
If you write your own drivers, the declarations of some functions have been changed to return void.

Changes to Callable SM

*
You must now include the library utils.a in addition to plotsub.a and devices.a when linking to SM as a graphics library.
*
The library names have been changed by pre-pending a `lib', so you can now say either `libdevices.a' or `-ldevices'. This allows the -L option to ld to work (under Unix).
*
If you compiled SM with an ANSI compiler, you should include the file "sm_declare.h" at the top of any C code that calls SM functions.

Bug fixes: (only the ones most visible to users are noted)

*
You can now define arbitrarily big vectors with the cursor.
*
LOCATION now works with non-touching WINDOWs.


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