changeset 2699:cdc8e0f3413a

[project @ 1997-02-19 04:09:20 by jwe]
author jwe
date Wed, 19 Feb 1997 04:09:40 +0000
parents a6e4de502512
children f28ab98a2c07
files WWW/NEWS-2.html WWW/index.html WWW/preface-link WWW/preface.html
diffstat 4 files changed, 635 insertions(+), 471 deletions(-) [+]
line wrap: on
line diff
--- a/WWW/NEWS-2.html
+++ b/WWW/NEWS-2.html
@@ -8,42 +8,115 @@
 <h1> News for Octave Version 2 </h1>
 <hr>
 
+<h2>Summary of changes for version 2.0.3</h2>
+
+<ul>
+<li>The manual has been completely revised and now corresponds much
+    more closely to the features of the current version.
+</li>
+<p>
+<li>The return value for assignment expressions is now the RHS since
+    that is more consistent with the way other programming languages
+    work.  However, Octave still prints the entire LHS value so that
+<pre>
+      x = zeros (1, 2);
+      x(2) = 1
+</pre>
+    still prints
+<pre>
+      x =
+
+        0  1
+
+</pre>
+    but an assignment like
+<pre>
+      z = x(2) = 1
+</pre>
+    sets z to 1 (not [ 0, 1 ] as in previous versions of Octave).
+</li>
+<p>
+<li>It is now much easier to make binary distributions.  See the
+    Binary Distributions section of the manual for more details.
+</li>
+</ul>
+
+<h2>Summary of changes for version 2.0.2</h2>
+
+<ul>
+</li>
+<li>Octave now stops executing commands from a script file if an error
+    is encountered.
+<p>
+</li>
+<li>The return, and break commands now cause Octave to quit executing
+    commands from script files.  When used in invalid contexts, the
+    break, continue, and return commands are now simply ignored
+    instead of producing parse errors.
+<p>
+</li>
+<li>size ("") is now [0, 0].
+<p>
+</li>
+<li>New functions:
+<dl>
+<dt><b>sleep</b></dt>
+<dd>pause execution for a specified number of seconds</dd>
+<dt><b>usleep</b></dt>
+<dd>pause execution for a specified number of microseconds</dd>
+</dl>
+</li>
+</ul>
+</pre>
+
+<h2>Summary of changes for version 2.0.1</h2>
+
+<p>
+Other than bug fixes, there were no user-visible changes in version
+2.0.1.
+
 <h2>Summary of changes for version 2.0</h2>
 
-<pre>
-  * The set and show commands for setting and displaying gnuplot
+<p>
+<ul>
+<li>The set and show commands for setting and displaying gnuplot
     parameters have been replaced by gset and gshow.  This change will
     probably break lots of things, but it is necessary to allow for
     compatibility with the Matlab graphics and GUI commands in a
     future version of Octave.  (For now, the old set and show commands
     do work, but they print an annoying warning message to try to get
     people to switch to using gset.)
-
-  * Octave has been mostly ported to Windows NT and Windows 95 using
+</li>
+<p>
+<li>Octave has been mostly ported to Windows NT and Windows 95 using
     the beta 17 release of the Cygnus GNU-WIN32 tools.  Not everything
     works, but it is usable.  See the file README.WINDOWS for more
     information.
-
-  * Dynamic linking works on more systems using dlopen() and friends
+</li>
+<p>
+<li>Dynamic linking works on more systems using dlopen() and friends
     (most modern Unix systems) or shl_load() and friends (HP/UX
     systems).  A simple example is provided in examples/hello.cc.
     For this feature to work, you must configure Octave with
     --enable-shared.  You may also need to have a shared-library
     version of libg++ and libstdc++.
-
-  * New data types can be added to Octave by writing a C++ class.  On
+</li>
+<p>
+<li>New data types can be added to Octave by writing a C++ class.  On
     systems that support dynamic linking, new data types can be added
     to an already running Octave binary.  A simple example appears in
     the file examples/make_int.cc.  Other examples are the standard
     Octave data types defined in the files src/ov*.{h,cc} and
     src/op-*.cc.
-
-  * The configure option --enable-bounds-check turns on bounds
+</li>
+<p>
+<li>The configure option --enable-bounds-check turns on bounds
     checking on element references for Octave's internal array and
     matrix classes.  It's enabled by default.  To disable this
     feature, configure Octave with --disable-bounds-check.
-
-  * The C-style I/O functions (fopen, fprintf, etc.) have been
+</li>
+<p>
+<li>The C-style I/O functions (fopen, fprintf, etc.) have been
     rewritten to be more compatible with Matlab.  The fputs function
     has also been added.  Usage of the *printf functions that was
     allowed in previous versions of Octave should still work.
@@ -52,77 +125,90 @@
     Octave.  An optional argument to the *scanf functions is now
     available to make them behave in a way that is compatible with
     previous versions of Octave.
-
-  * Octave can now read files that contain columns of numbers only,
+</li>
+<p>
+<li>Octave can now read files that contain columns of numbers only,
     with no header information.  The name of the loaded variable is
     constructed from the file name.  Each line in the file must have
     the same number of elements.
-
-  * The interface to the pager has changed.  The new built-in variable
+</li>
+<p>
+<li>The interface to the pager has changed.  The new built-in variable
     `page_output_immediately' controls when Octave sends output to the
     pager.  If it is nonzero, Octave sends output to the pager as soon
     as it is available.  Otherwise, Octave buffers its output and
     waits until just before the prompt is printed to flush it to the
     pager.
-
-  * Expressions of the form
-
+</li>
+<p>
+<li>Expressions of the form
+<pre>
       A(i,j) = x
-
+</pre>
     where X is a scalar and the indices i and j define a matrix of
     elements now work as you would expect rather than giving an error.
     I am told that this is how Matlab 5.0 will behave when it is
     released.
-
-  * Indexing of character strings now works.
-
-  * The echo command has been implemented.
-
-  * The document command is now a regular function.
-
-  * New method for handling errors:
-
+</li>
+<p>
+<li>Indexing of character strings now works.
+</li>
+<p>
+<li>The echo command has been implemented.
+</li>
+<p>
+<li>The document command is now a regular function.
+</li>
+<p>
+<li>New method for handling errors:
+<pre>
       try
         BODY
       catch
         CLEANUP
       end_try_catch
-
+</pre>
     Where BODY and CLEANUP are both optional and may contain any
     Octave expressions or commands.  The statements in CLEANUP are
     only executed if an error occurs in BODY.
 
-    No warnings or error messages are printed while BODY is
+<p> No warnings or error messages are printed while BODY is
     executing.  If an error does occur during the execution of BODY,
     CLEANUP can access the text of the message that would have been
     printed in the builtin constant __error_text__.  This is the same
     as eval (TRY, CATCH) (which may now also use __error_text__) but
     it is more efficient since the commands do not need to be parsed
     each time the TRY and CATCH statements are evaluated.
-
-  * Octave no longer parses the help command by grabbing everything
+</li>
+<p>
+<li>Octave no longer parses the help command by grabbing everything
     after the keyword `help' until a newline character is read.  To
     get help for `;' or `,', now, you need to use the command
     `help semicolon' or `help comma'.
-
-  * Octave's parser now does some simple constant folding.  This means
+</li>
+<p>
+<li>Octave's parser now does some simple constant folding.  This means
     that expressions like 3*i are now evaluated only once, when a
     function is compiled, and the right hand side of expressions like
     a = [1,2;3,4] are treated as true matrix constants rather than
     lists of elements which must be evaluated each time they are
     needed.
-
-  * Built-in variables that can take values of "true" and "false" can
+</li>
+<p>
+<li>Built-in variables that can take values of "true" and "false" can
     now also be set to any nonzero scalar value to indicate "true",
     and 0 to indicate "false".
-
-  * New built-in variables `history_file', `history_size', and
+</li>
+<p>
+<li>New built-in variables `history_file', `history_size', and
     `saving_history'.
-
-  * New built-in variable `string_fill_char' specifies the character
+</li>
+<p>
+<li>New built-in variable `string_fill_char' specifies the character
     to fill with when creating arrays of strings.
-
-  * If the new built-in variable `gnuplot_has_frames' is nonzero,
+</li>
+<p>
+<li>If the new built-in variable `gnuplot_has_frames' is nonzero,
     Octave assumes that your copy of gnuplot includes support for
     multiple plot windows when using X11.
 
@@ -134,67 +220,84 @@
     but can be changed in your startup script or at the command line
     in case configure got it wrong, or if you upgrade your gnuplot
     installation.
-
-  * The new plot function `figure' allows multiple plot windows when
+</li>
+<p>
+<li>The new plot function `figure' allows multiple plot windows when
     using newer versions of gnuplot with X11.
-
-  * Octave now notices when the plotter has exited unexpectedly.
-
-  * New built-in variable `warn_missing_semicolon'.  If nonzero, Octave
+</li>
+<p>
+<li>Octave now notices when the plotter has exited unexpectedly.
+</li>
+<p>
+<li>New built-in variable `warn_missing_semicolon'.  If nonzero, Octave
     will warn when statements in function definitions don't end in
     semicolons.  The default value is 0.
-
-  * Octave now attempts to continue after floating point exceptions
+</li>
+<p>
+<li>Octave now attempts to continue after floating point exceptions
     or out-of-memory errors.
-
-  * If Octave crashes, it now attempts to save all user-defined
+</li>
+<p>
+<li>If Octave crashes, it now attempts to save all user-defined
     variables in a file named `octave-core' in the current directory
     before exiting.
-
-  * It is now possible to get the values of individual option settings
+</li>
+<p>
+<li>It is now possible to get the values of individual option settings
     for the dassl, fsolve, lsode, npsol, qpsol, and quad functions
     using commands like
-
+<pre>
       dassl_reltol = dassl_options ("relative tolerance");
-
-  * The svd() function no longer computes the left and right singular
+</pre>
+</li>
+<p>
+<li>The svd() function no longer computes the left and right singular
     matrices unnecessarily.  This can significantly improve
     performance for large matrices if you are just looking for the  
     singular values.
-
-  * The filter() function is now a built-in function.
-
-  * New function randn() returns a pseudo-random number from a normal
+</li>
+<p>
+<li>The filter() function is now a built-in function.
+</li>
+<p>
+<li>New function randn() returns a pseudo-random number from a normal
     distribution.  The rand() and randn() functions have separate
     seeds and generators.
-
-  * Octave's command-line arguments are now available in the built-in
+</li>
+<p>
+<li>Octave's command-line arguments are now available in the built-in
     variable `argv'.  The program name is also available in the
     variables `program_invocation_name' and `program_name'.  If
     executing a script from the command line (e.g., octave foo.m) or
     using the `#! /bin/octave' hack, the program name is set to the
     name of the script.
-
-  * New built-in variable `completion_append_char' used as the
+</li>
+<p>
+<li>New built-in variable `completion_append_char' used as the
     character to append to successful command-line completion
     attempts.  The default is " " (a single space).
-
-  * Octave now uses a modified copy of the readline library from
+</li>
+<p>
+<li>Octave now uses a modified copy of the readline library from
     version 1.14.5 of GNU bash.
-
-  * In prompt strings, `\H' expands to the whole host name.
-
-  * New built-in variable `beep_on_error'.  If nonzero, Octave will try
+</li>
+<p>
+<li>In prompt strings, `\H' expands to the whole host name.
+</li>
+<p>
+<li>New built-in variable `beep_on_error'.  If nonzero, Octave will try
     to ring your terminal's bell before printing an error message.
     The default value is 0.
-
-  * For functions defined from files, the type command now prints the
+</li>
+<p>
+<li>For functions defined from files, the type command now prints the
     text of the file.  You can still get the text reconstructed from
     the parse tree by using the new option -t (-transformed).
-
-  * New command-line argument --traditional sets the following
+</li>
+<p>
+<li>New command-line argument --traditional sets the following
     preference variables for compatibility with Matlab:
-
+<pre>
       PS1                           = ">> "
       PS2                           = ""
       beep_on_error                 = 1
@@ -211,207 +314,459 @@
       treat_neg_dim_as_zero         = 1
       warn_function_name_clash      = 0
       whitespace_in_literal_matrix  = "traditional"
-
-  * New functions:
-
-      readdir  -- returns names of files in directory as array of strings
-      mkdir    -- create a directory
-      rmdir    -- remove a directory
-      rename   -- rename a file
-      unlink   -- delete a file
-      umask    -- set permission mask for file creation
-      stat     -- get information about a file
-      lstat    -- get information about a symbolic link
-      glob     -- perform filename globbing
-      fnmatch  -- match strings with filename globbing patterns
-      more     -- turn the pager on or off
-      gammaln  -- alias for lgamma
-
-  * New audio functions from Andreas Weingessel
-    <Andreas.Weingessel@ci.tuwien.ac.at>.
-
-      lin2mu     -- linear to mu-law encoding
-      loadaudio  -- load an audio file to a vector
-      mu2lin     -- mu-law to linear encoding
-      playaudio  -- play an audio file
-      record     -- record sound and store in vector
-      saveaudio  -- save a vector as an audio file
-      setaudio   -- executes mixer shell command
-
-  * New plotting functions from Vinayak Dutt.  Ones dealing with
+</pre>
+</li>
+<p>
+<li>New functions:
+<dl>
+<dt><b>readdir</b></dt>
+<dd>returns names of files in directory as array of strings
+</dd>
+<dt><b>mkdir</b></dt>
+<dd>create a directory
+</dd>
+<dt><b>rmdir</b></dt>
+<dd>remove a directory
+</dd>
+<dt><b>rename</b></dt>
+<dd>rename a file
+</dd>
+<dt><b>unlink</b></dt>
+<dd>delete a file
+</dd>
+<dt><b>umask</b></dt>
+<dd>set permission mask for file creation
+</dd>
+<dt><b>stat</b></dt>
+<dd>get information about a file
+</dd>
+<dt><b>lstat</b></dt>
+<dd>get information about a symbolic link
+</dd>
+<dt><b>glob</b></dt>
+<dd>perform filename globbing
+</dd>
+<dt><b>fnmatch</b></dt>
+<dd>match strings with filename globbing patterns
+</dd>
+<dt><b>more</b></dt>
+<dd>turn the pager on or off
+</dd>
+<dt><b>gammaln</b></dt>
+<dd>alias for lgamma
+</dd>
+</dl>
+</li>
+<p>
+<li>New audio functions from Andreas Weingessel:
+<dl>
+<dt><b>lin2mu</b></dt>
+<dd>linear to mu-law encoding
+</dd>
+<dt><b>loadaudio</b></dt>
+<dd>load an audio file to a vector
+</dd>
+<dt><b>mu2lin</b></dt>
+<dd>mu-law to linear encoding
+</dd>
+<dt><b>playaudio</b></dt>
+<dd>play an audio file
+</dd>
+<dt><b>record</b></dt>
+<dd>record sound and store in vector
+</dd>
+<dt><b>saveaudio</b></dt>
+<dd>save a vector as an audio file
+</dd>
+<dt><b>setaudio</b></dt>
+<dd>executes mixer shell command
+</dd>
+</dl>
+</li>
+<p>
+<li>New plotting functions from Vinayak Dutt.  Ones dealing with
     multiple plots on one page require features from gnuplot 3.6beta
     (or later).
-
-      bottom_title  -- put title at the bottom of the plot
-      mplot         -- multiplot version of plot
-      multiplot     -- switch multiple-plot mode on or off
-      oneplot       -- return to one plot per page
-      plot_border   -- put a border around plots
-      subplot       -- position multiple plots on a single page
-      subwindow     -- set subwindow position for next plot
-      top_title     -- put title at the top of the plot
-      zlabel        -- put a label on the z-axis
-
-  * New string functions
-
-      bin2dec  -- convert a string of ones and zeros to an integer
-      blanks   -- create a string of blanks
-      deblank  -- delete trailing blanks
-      dec2bin  -- convert an integer to a string of ones and zeros
-      dec2hex  -- convert an integer to a hexadecimal string
-      findstr  -- locate occurrences of one string in another
-      hex2dec  -- convert a hexadecimal string to an integer
-      index    -- return position of first occurrence a string in another
-      rindex   -- return position of last occurrence a string in another
-      split    -- divide one string into pieces separated by another
-      str2mat  -- create a string matrix from a list of strings
-      strrep   -- replace substrings in a string
-      substr   -- extract a substring
-
+<dl>
+<dt><b>bottom_title</b></dt>
+<dd>put title at the bottom of the plot
+</dd>
+<dt><b>mplot</b></dt>
+<dd>multiplot version of plot
+</dd>
+<dt><b>multiplot</b></dt>
+<dd>switch multiple-plot mode on or off
+</dd>
+<dt><b>oneplot</b></dt>
+<dd>return to one plot per page
+</dd>
+<dt><b>plot_border</b></dt>
+<dd>put a border around plots
+</dd>
+<dt><b>subplot</b></dt>
+<dd>position multiple plots on a single page
+</dd>
+<dt><b>subwindow</b></dt>
+<dd>set subwindow position for next plot
+</dd>
+<dt><b>top_title</b></dt>
+<dd>put title at the top of the plot
+</dd>
+<dt><b>zlabel</b></dt>
+<dd>put a label on the z-axis
+</dd>
+</dl>
+</li>
+<p>
+<li>New string functions
+<dl>
+<dt><b>bin2dec</b></dt>
+<dd>convert a string of ones and zeros to an integer
+</dd>
+<dt><b>blanks</b></dt>
+<dd>create a string of blanks
+</dd>
+<dt><b>deblank</b></dt>
+<dd>delete trailing blanks
+</dd>
+<dt><b>dec2bin</b></dt>
+<dd>convert an integer to a string of ones and zeros
+</dd>
+<dt><b>dec2hex</b></dt>
+<dd>convert an integer to a hexadecimal string
+</dd>
+<dt><b>findstr</b></dt>
+<dd>locate occurrences of one string in another
+</dd>
+<dt><b>hex2dec</b></dt>
+<dd>convert a hexadecimal string to an integer
+</dd>
+<dt><b>index</b></dt>
+<dd>return position of first occurrence a string in another
+</dd>
+<dt><b>rindex</b></dt>
+<dd>return position of last occurrence a string in another
+</dd>
+<dt><b>split</b></dt>
+<dd>divide one string into pieces separated by another
+</dd>
+<dt><b>str2mat</b></dt>
+<dd>create a string matrix from a list of strings
+</dd>
+<dt><b>strrep</b></dt>
+<dd>replace substrings in a string
+</dd>
+<dt><b>substr</b></dt>
+<dd>extract a substring
+</dd>
+</dl>
+<p>
     The following functions return a matrix of ones and zeros.
     Elements that are nonzero indicate that the condition was true for
     the corresponding character in the string array.
-
-      isalnum   -- letter or a digit
-      isalpha   -- letter
-      isascii   -- ascii
-      iscntrl   -- control character
-      isdigit   -- digit
-      isgraph   -- printable (but not space character)
-      islower   -- lower case
-      isprint   -- printable (including space character)
-      ispunct   -- punctuation
-      isspace   -- whitespace
-      isupper   -- upper case
-      isxdigit  -- hexadecimal digit
-
+<dl>
+<dt><b>isalnum</b></dt>
+<dd>letter or a digit
+</dd>
+<dt><b>isalpha</b></dt>
+<dd>letter
+</dd>
+<dt><b>isascii</b></dt>
+<dd>ascii
+</dd>
+<dt><b>iscntrl</b></dt>
+<dd>control character
+</dd>
+<dt><b>isdigit</b></dt>
+<dd>digit
+</dd>
+<dt><b>isgraph</b></dt>
+<dd>printable (but not space character)
+</dd>
+<dt><b>islower</b></dt>
+<dd>lower case
+</dd>
+<dt><b>isprint</b></dt>
+<dd>printable (including space character)
+</dd>
+<dt><b>ispunct</b></dt>
+<dd>punctuation
+</dd>
+<dt><b>isspace</b></dt>
+<dd>whitespace
+</dd>
+<dt><b>isupper</b></dt>
+<dd>upper case
+</dd>
+<dt><b>isxdigit</b></dt>
+<dd>hexadecimal digit
+</dd>
+</dl>
+<p>
     These functions return new strings.
-
-      tolower  -- convert to lower case
-      toupper  -- convert to upper case
-
-  * New function, fgetl.  Both fgetl and fgets accept an optional
+<dl>
+<dt><b>tolower</b></dt>
+<dd>convert to lower case
+</dd>
+<dt><b>toupper</b></dt>
+<dd>convert to upper case
+</dd>
+</dl>
+</li>
+<p>
+<li>New function, fgetl.  Both fgetl and fgets accept an optional
     second argument that specifies a maximum number of characters to
     read, and the function fgets is now compatible with Matlab.
-
-  * Printing in hexadecimal format now works (format hex).  It is also
+</li>
+<p>
+<li>Printing in hexadecimal format now works (format hex).  It is also
     possible to print the internal bit representation of a value
     (format bit).  Note that these formats are only implemented for
     numeric values.
-
-  * Additional structure features:
-
-    -- Name completion now works for structures.
-
-    -- Values and names of structure elements are now printed by
-       default.  The new built-in variable `struct_levels_to_print'
-       controls the depth of nested structures to print.  The default
-       value is 2.
-
-    -- New functions:
-
-       struct_contains (S, NAME) -- returns 1 if S is a structure with
-                                    element NAME; otherwise returns 0.
-
-       struct_elements (S)       -- returns the names of all elements
-                                    of structure S in an array of strings. 
-
-  * New io/subprocess functions:
-
-      fputs    -- write a string to a file with no formatting
-      popen2   -- start a subprocess with 2-way communication
-      mkfifo   -- create a FIFO special file
-      popen    -- open a pipe to a subprocess
-      pclose   -- close a pipe from a subprocess
-      waitpid  -- check the status of or wait for subprocesses
-
-  * New time functions:
-
-      asctime    -- format time structure according to local format
-      ctime      -- equivalent to `asctime (localtime (TMSTRUCT))'
-      gmtime     -- return time structure corresponding to UTC
-      localtime  -- return time structure corresponding to local time zone
-      strftime   -- print given time structure using specified format
-      time       -- return current time
-
+</li>
+<p>
+<li>Additional structure features:
+<ul>
+<li>Name completion now works for structures.
+</li>
+<li>Values and names of structure elements are now printed by
+    default.  The new built-in variable `struct_levels_to_print'
+    controls the depth of nested structures to print.  The default
+    value is 2.
+</li>
+<li>New functions:
+<dl>
+<dt><b>struct_contains (S, NAME)</b></dt>
+<dd>returns 1 if S is a structure with element NAME; otherwise returns 0.
+</dd> 
+<dt><b>struct_elements (S)</b></dt>
+<dd>returns the names of all elements of structure S in an array of
+    strings.
+</dd>
+</dl>
+</li>
+</ul>
+</li>
+<p>
+<li>New io/subprocess functions:
+<dl>
+<dt><b>fputs</b></dt>
+<dd>write a string to a file with no formatting
+</dd>
+<dt><b>popen2</b></dt>
+<dd>start a subprocess with 2-way communication
+</dd>
+<dt><b>mkfifo</b></dt>
+<dd>create a FIFO special file
+</dd>
+<dt><b>popen</b></dt>
+<dd>open a pipe to a subprocess
+</dd>
+<dt><b>pclose</b></dt>
+<dd>close a pipe from a subprocess
+</dd>
+<dt><b>waitpid</b></dt>
+<dd>check the status of or wait for subprocesses
+</dd>
+</dl>
+</li>
+<p>
+<li>New time functions:
+<dl>
+<dt><b>asctime</b></dt>
+<dd>format time structure according to local format
+</dd>
+<dt><b>ctime</b></dt>
+<dd>equivalent to `asctime (localtime (TMSTRUCT))'
+</dd>
+<dt><b>gmtime</b></dt>
+<dd>return time structure corresponding to UTC
+</dd>
+<dt><b>localtime</b></dt>
+<dd>return time structure corresponding to local time zone
+</dd>
+<dt><b>strftime</b></dt>
+<dd>print given time structure using specified format
+</dd>
+<dt><b>time</b></dt>
+<dd>return current time
+</dd>
+</dl>
+<p>
     The `clock' and `date' functions are now implemented in M-files
     using these basic functions.
-
-  * Access to additional Unix system calls:
-
-      dup2     -- duplicate a file descriptor
-      exec     -- replace current process with a new process
-      fcntl    -- control open file descriptors
-      fork     -- create a copy of the current process
-      getpgrp  -- return the process group id of the current process
-      getpid   -- return the process id of the current process
-      getppid  -- return the process id of the parent process
-      getuid   -- return the real user id of the current process
-      getgid   -- return the real group id of the current process
-      geteuid  -- return the effective user id of the current process
-      getegid  -- return the effective group id of the current process
-      pipe     -- create an interprocess channel
-
-  * Other new functions:
-
-      commutation_matrix  -- compute special matrix form
-      duplication_matrix  -- compute special matrix form
-      common_size.m       -- bring arguments to a common size
-      completion_matches  -- perform command completion on string
-      tilde_expand        -- perform tilde expansion on string
-
-      meshgrid  -- compatible with Matlab's meshgrid function
-      tmpnam    -- replaces octave_tmp_file_name
-      atexit    -- register functions to be called when Octave exits
-      putenv    -- define an environment variable
-      bincoeff  -- compute binomial coefficients
-      nextpow2  -- compute the next power of 2 greater than a number
-      detrend   -- remove a best fit polynomial from data
-      erfinv    -- inverse error function
-      shift     -- perform a circular shift on the elements of a matrix
-      pow2      -- compute 2 .^ x
-      log2      -- compute base 2 logarithms
-      diff      -- compute differences of matrix elements
-      vech      -- stack columns of a matrix below the diagonal
-      vec       -- stack columns of a matrix to form a vector
-      xor       -- compute exclusive or
-
-  * Functions for getting info from the password database on Unix systems:
-
-      getpwent  -- read entry from password-file stream, opening if necessary
-      getpwuid  -- search for password entry with matching user ID
-      getpwnam  -- search for password entry with matching username
-      setpwent  -- rewind the password-file stream
-      endpwent  -- close the password-file stream
-
-  * Functions for getting info from the group database on Unix systems:
-
-      getgrent  -- read entry from group-file stream, opening if necessary
-      getgrgid  -- search for group entry with matching group ID
-      getgrnam  -- search for group entry with matching group name
-      setgrent  -- rewind the pgroup-file stream
-      endgrent  -- close the group-file stream
-
-  * The New function octave_config_info returns a structure containing
+</li>
+<p>
+<li>Access to additional Unix system calls:
+<dl>
+<dt><b>dup2</b></dt>
+<dd>duplicate a file descriptor
+</dd>
+<dt><b>exec</b></dt>
+<dd>replace current process with a new process
+</dd>
+<dt><b>fcntl</b></dt>
+<dd>control open file descriptors
+</dd>
+<dt><b>fork</b></dt>
+<dd>create a copy of the current process
+</dd>
+<dt><b>getpgrp</b></dt>
+<dd>return the process group id of the current process
+</dd>
+<dt><b>getpid</b></dt>
+<dd>return the process id of the current process
+</dd>
+<dt><b>getppid</b></dt>
+<dd>return the process id of the parent process
+</dd>
+<dt><b>getuid</b></dt>
+<dd>return the real user id of the current process
+</dd>
+<dt><b>getgid</b></dt>
+<dd>return the real group id of the current process
+</dd>
+<dt><b>geteuid</b></dt>
+<dd>return the effective user id of the current process
+</dd>
+<dt><b>getegid</b></dt>
+<dd>return the effective group id of the current process
+</dd>
+<dt><b>pipe</b></dt>
+<dd>create an interprocess channel
+</dd>
+</dl>
+</li>
+<p>
+<li>Other new functions:
+<dl>
+<dt><b>commutation_matrix</b></dt>
+<dd>compute special matrix form
+</dd>
+<dt><b>duplication_matrix</b></dt>
+<dd>compute special matrix form
+</dd>
+<dt><b>common_size.m</b></dt>
+<dd>bring arguments to a common size
+</dd>
+<dt><b>completion_matches</b></dt>
+<dd>perform command completion on string
+</dd>
+<dt><b>tilde_expand</b></dt>
+<dd>perform tilde expansion on string
+</dd>
+<dt><b>meshgrid</b></dt>
+<dd>compatible with Matlab's meshgrid function
+</dd>
+<dt><b>tmpnam</b></dt>
+<dd>replaces octave_tmp_file_name
+</dd>
+<dt><b>atexit</b></dt>
+<dd>register functions to be called when Octave exits
+</dd>
+<dt><b>putenv</b></dt>
+<dd>define an environment variable
+</dd>
+<dt><b>bincoeff</b></dt>
+<dd>compute binomial coefficients
+</dd>
+<dt><b>nextpow2</b></dt>
+<dd>compute the next power of 2 greater than a number
+</dd>
+<dt><b>detrend</b></dt>
+<dd>remove a best fit polynomial from data
+</dd>
+<dt><b>erfinv</b></dt>
+<dd>inverse error function
+</dd>
+<dt><b>shift</b></dt>
+<dd>perform a circular shift on the elements of a matrix
+</dd>
+<dt><b>pow2</b></dt>
+<dd>compute 2 .^ x
+</dd>
+<dt><b>log2</b></dt>
+<dd>compute base 2 logarithms
+</dd>
+<dt><b>diff</b></dt>
+<dd>compute differences of matrix elements
+</dd>
+<dt><b>vech</b></dt>
+<dd>stack columns of a matrix below the diagonal
+</dd>
+<dt><b>vec</b></dt>
+<dd>stack columns of a matrix to form a vector
+</dd>
+<dt><b>xor</b></dt>
+<dd>compute exclusive or
+</dd>
+</dl>
+</li>
+<p>
+<li>Functions for getting info from the password database on Unix systems:
+<dl>
+<dt><b>getpwent</b></dt>
+<dd>read entry from password-file stream, opening if necessary
+</dd>
+<dt><b>getpwuid</b></dt>
+<dd>search for password entry with matching user ID
+</dd>
+<dt><b>getpwnam</b></dt>
+<dd>search for password entry with matching username
+</dd>
+<dt><b>setpwent</b></dt>
+<dd>rewind the password-file stream
+</dd>
+<dt><b>endpwent</b></dt>
+<dd>close the password-file stream
+</dd>
+</dl>
+</li>
+<p>
+<li>Functions for getting info from the group database on Unix systems:
+<dl>
+<dt><b>getgrent</b></dt>
+<dd>read entry from group-file stream, opening if necessary
+</dd>
+<dt><b>getgrgid</b></dt>
+<dd>search for group entry with matching group ID
+</dd>
+<dt><b>getgrnam</b></dt>
+<dd>search for group entry with matching group name
+</dd>
+<dt><b>setgrent</b></dt>
+<dd>rewind the pgroup-file stream
+</dd>
+<dt><b>endgrent</b></dt>
+<dd>close the group-file stream
+</dd>
+</dl>
+</li>
+<p>
+<li>The New function octave_config_info returns a structure containing
     information about how Octave was configured and compiled.
-
-  * New function getrusage returns a structure containing system
+</li>
+<p>
+<li>New function getrusage returns a structure containing system
     resource usage statistics.  The `cputime' function is now defined
     in an M-file using getrusage.
-
-  * The info reader is now a separate binary that runs as a
+</li>
+<p>
+<li>The info reader is now a separate binary that runs as a
     subprocess.  You still need the info reader distributed with
     Octave though, because there are some new command-line arguments
     that are not yet available in the public release of Info.
-
-  * There is a new built-in variable, INFO_PROGRAM, which is used as
+</li>
+<p>
+<li>There is a new built-in variable, INFO_PROGRAM, which is used as
     the name of the info program to run.  Its initial value is
     $OCTAVE_HOME/lib/octave/VERSION/exec/ARCH/info, but that value can
     be overridden by the environment variable OCTAVE_INFO_PROGRAM, or
     the command line argument --info-program NAME, or by setting the
     value of INFO_PROGRAM in a startup script.
-
-  * There is a new built-in variable, EXEC_PATH, which is used as
+</li>
+<p>
+<li>There is a new built-in variable, EXEC_PATH, which is used as
     the list of directories to search when executing subprograms.  Its
     initial value is taken from the environment variable
     OCTAVE_EXEC_PATH (if it exists) or PATH, but that value can be
@@ -422,24 +777,30 @@
     prepended (appended) to EXEC_PATH (if you don't specify a value
     for EXEC_PATH explicitly, these special directories are prepended
     to your PATH).
-
-  * If it is present, Octave will now use an `ls-R' database file to
+</li>
+<p>
+<li>If it is present, Octave will now use an `ls-R' database file to
     speed up recursive path searching.  Octave looks for a file called
     ls-R in the directory specified by the environment variable
     OCTAVE_DB_DIR.  If that is not set but the environment variable
     OCTAVE_HOME is set, Octave looks in $OCTAVE_HOME/lib/octave.
     Otherwise, Octave looks in the directory $datadir/octave (normally
     /usr/local/lib/octave).
-
-  * New examples directory.
-
-  * There is a new script, mkoctfile, that can be used to create .oct
+</li>
+<p>
+<li>New examples directory.
+</li>
+<p>
+<li>There is a new script, mkoctfile, that can be used to create .oct
     files suitable for dynamic linking.
-
-  * Many more bug fixes.
-
-  * ChangeLogs are now kept in each subdirectory.
-</pre>
+</li>
+<p>
+<li>Many more bug fixes.
+</li>
+<p>
+<li>ChangeLogs are now kept in each subdirectory.</li>
+</li>
+</ul>
 
 </body>
 </html>
--- a/WWW/index.html
+++ b/WWW/index.html
@@ -16,8 +16,11 @@
 
 <h2>News</h2>
 <p>
-Version 2.0.1 was released Tuesday January 7, 1997.  Most bugs
+Version 2.0.3 was released Tuesday February 18, 1997.  Most bugs
 reported since the release of version 2.0 have been fixed.
+Unfortunately, there are a few glitches in the installation procedure
+that will cause trouble on a few systems.  Look for 2.0.4 to correct
+these minor problems fairly soon.
 </p>
 
 <p>
@@ -44,12 +47,11 @@
 <p>
 To get started, there is a
 <a href="readme.html">brief introduction</a>, and also the 
-<a href="preface.html">preface</a> to the manual.  For more
+<a href="doc/octave_1.html">preface</a> to the manual.  For more
 detailed information, you can browse the
-<a href="http://www.che.wisc.edu/cgi-bin/info2www?(octave)">complete
-documentation</a>, which has been converted to HTML directly from the
-installed info files with
-<a href="http://www.che.wisc.edu/info2www.html">info2www</a>.
+<a href="doc/octave_toc.html">complete documentation</a>, which has
+been converted to HTML directly from the Texinfo source using
+texi2html.
 </p>
 
 <p>
new file mode 100644
--- /dev/null
+++ b/WWW/preface-link
@@ -0,0 +1,1 @@
+<a href="http://www.che.orst.edu/faculty/profs.html">professor</a>
deleted file mode 100644
--- a/WWW/preface.html
+++ /dev/null
@@ -1,200 +0,0 @@
-<!doctype html public "-//IETF//DTD HTML Strict//EN">
-<html>
-<head>
-<title> Preface to the Octave Manual </title>
-</head>
-
-<body>
-<h2>Preface</h2>
-<p>
-Octave was originally intended to be companion software for an
-undergraduate-level textbook on chemical reactor design being written by
-James B. Rawlings of the University of Wisconsin-Madison and John
-G. Ekerdt of the University of Texas.
-</p>
-
-<p>
-Clearly, Octave is now much more than just another `courseware' package
-with limited utility beyond the classroom.  Although our initial goals
-were somewhat vague, we knew that we wanted to create something that
-would enable students to solve realistic problems, and that they could
-use for many things other than chemical reactor design problems.
-</p>
-
-<p>
-There are those who would say that we should be teaching the students
-Fortran instead, because that is the computer language of engineering,
-but every time we have tried that, the students have spent far too much
-time trying to figure out why their Fortran code crashes and not enough
-time learning about chemical engineering.  With Octave, most students
-pick up the basics quickly, and are using it confidently in just a few
-hours.
-</p>
-
-<p>
-Although it was originally intended to be used to teach reactor design,
-it has been used in several other undergraduate and graduate
-courses in the Chemical Engineering Department at the University of
-Texas, and the math department at the University of Texas has been using
-it for teaching differential equations and linear algebra as well.  If
-you find it useful, please let us know.  We are always interested to
-find out how Octave is being used in other places.
-</p>
-
-<p>
-Virtually everyone thinks that the name Octave has something to do with
-music, but it is actually the name of a former
-<a href="http://www.che.orst.edu/faculty/profs.html">professor</a>
-of mine who wrote a famous textbook on chemical reaction engineering,
-and who was also well known for his ability to do quick `back of the
-envelope' calculations.  We hope that this software will make it
-possible for many people to do more ambitious computations just as
-easily.
-</p>
-
-<p>
-Everyone is encouraged to share this software with others under the
-terms of the
-<a href="http://www.che.wisc.edu/cgi-bin/info2www?(octave)Copying">GNU
-General Public License</a> as described at the beginning of this
-manual.  You are also encouraged to help make Octave more useful by
-writing and contributing additional functions for it, and by reporting
-any problems you may have.
-</p>
-
-<p>
-Many people have already contributed to Octave's development.  In
-addition to John W. Eaton, the following people have helped write parts
-of Octave or helped out in various other ways.
-</p>
-
-<ul>
-<li><em>Thomas Baier</em> (baier@ci.tuwien.ac.at) wrote the original
-versions of <tt>popen</tt>, <tt>pclose</tt>, <tt>execute</tt>,
-<tt>sync_system</tt>, and <tt>async_system</tt>.</li>
-
-<li><em>Karl Berry</em> (karl@cs.umb.edu) wrote the <tt>kpathsea</tt>
-library that allows Octave to recursively search directory paths for
-function and script files.</li>
-
-<li><em>Georg Beyerle</em> (gbeyerle@awi-potsdam.de) contributed code
-to save values in Matlab's <tt>.mat</tt>-file format, and has provided
-many useful bug reports and suggestions.</li>
-
-<li><em>John Campbell</em> (jcc@bevo.che.wisc.edu) wrote most of the
-file and C-style input and output functions.</li>
-
-<li><em>Brian Fox</em> (bfox@gnu.ai.mit.edu) wrote the
-<tt>readline</tt> library used for command history editing, and the
-portion of this manual that documents it.</li>
-
-<li><em>Klaus Gebhardt</em>
-(gebhardt@crunch.ikp.physik.th-darmstadt.de) ported Octave to OS/2 and
-worked with <em>Michel Juillard</em> (juillard@msh-paris.fr) on the
-port to DOS.</li>
-
-<li><em>A. Scottedward Hodel</em> (scotte@eng.auburn.edu) contributed
-a number of functions including <tt>expm</tt>, <tt>qzval</tt>,
-<tt>qzhess</tt>, <tt>syl</tt>, <tt>lyap</tt>, and
-<tt>balance</tt>.</li>
-
-<li><em>Kurt Hornik</em> (Kurt.Hornik@ci.tuwien.ac.at) has written and
-documented many functions for Octave, rewrote and documented the Emacs
-mode for editing Octave code, and has helped tremendously with
-testing.  He has also been a constant source of new ideas for
-improving Octave.</li>
-
-<li><em>Phil Johnson</em> (johnsonp@nicco.sscnet.ucla.edu) has helped
-to make Linux releases available.</li>
-
-<li><em>Michel Juillard</em> (juillard@msh-paris.fr) ported Octave to
-DOS systems.</li>
-
-<li><em>Friedrich Leisch</em> (leisch@ci.tuwien.ac.at) provided the
-<tt>mahalanobis</tt> function.</li>
-
-<li><em>Ken Neighbors</em> (wkn@leland.stanford.edu) has provided many
-useful bug reports and comments on Matlab compatibility.</li>
-
-<li><em>Rick Niles</em> (niles@axp745.gsfc.nasa.gov) rewrote Octave's
-plotting functions to add line styles and the ability to specify an
-unlimited number of lines in a single call.  He also continues to
-track down odd incompatibilities and bugs.</li>
-
-<li><em>Mark Odegard</em> (meo@sugarland.unocal.com) provided the
-initial implementation of <tt>fread</tt>, <tt>fwrite</tt>,
-<tt>feof</tt>, and <tt>ferror</tt>.</li>
-
-<li><em>Tony Richardson</em> (tony@guts.biomed.uakron.edu) wrote
-Octave's image processing functions as well as most of the original
-polynomial functions.</li>
-
-<li><em>R. Bruce Tenison</em> (Bruce.Tenison@eng.auburn.edu) wrote the
-<tt>hess</tt> and <tt>schur</tt> functions.</li>
-
-<li><em>Teresa Twaroch</em> (twaroch@ci.tuwien.ac.at) provided the
-functions <tt>gls</tt> and <tt>ols</tt>.</li>
-
-<li><em>Andreas Weingessel</em> (Andreas.Weingessel@ci.tuwien.ac.at)
-wrote the audio functions <tt>lin2mu</tt>, <tt>loadaudio</tt>,
-<tt>mu2lin</tt>, <tt>playaudio</tt>, <tt>record</tt>,
-<tt>saveaudio</tt>, and <tt>setaudio</tt>.</li>
-
-<li><em>Fook Fah Yap</em> (ffy@eng.cam.ac.uk) provided the
-<tt>fft</tt> and <tt>ifft</tt> functions and valuable bug reports for
-early versions.
-</ul>
-
-<p>
-Special thanks to the following people and organizations for
-supporting the development of Octave:
-</p>
-
-<ul>
-<li><em>Digital Equipment Corporation</em>, for an equipment grant as part
-of their External Research Program.</li>
-
-<li><em>Sun Microsystems</em>, Inc., for an Academic Equipment grant.</li>
-
-<li><em>International Business Machines, Inc.</em>, for providing equipment
-as part of a grant to the University of Texas College of Engineering.</li>
-
-<li><em>Texaco Chemical Company</em>, for providing funding to continue the
-development of this software.</li>
-
-<li><em>The University of Texas College of Engineering</em>, for providing a
-Challenge for Excellence Research Supplement, and for providing an
-Academic Development Funds grant.</li>
-
-<li><em>The State of Texas</em>, for providing funding through the Texas
-Advanced Technology Program under Grant No. 003658-078.</li>
-
-<li><em>Noel Bell</em>, Senior Engineer, Texaco Chemical Company, Austin
-Texas.</li>
-
-<li><em>James B. Rawlings</em>, Professor, University of Wisconsin-Madison,
-Department of Chemical Engineering.</li>
-
-<li><em>Richard Stallman</em>, for writing GNU.</li>
-</ul>
-
-<p>
-This project would not have been possible without the
-<a href="http://www.gnu.org">GNU</a> software used in and used to
-produce Octave.
-</p>
-
-<hr>
-<p>
-Back to the <a href="http://www.che.wisc.edu/octave">Octave home page</a>.
-</p>
-<hr>
-<p>
-<a href="http://www.che.wisc.edu/~jwe">John W. Eaton</a><br>
-<a href="mailto:jwe@bevo.che.wisc.edu"><i>jwe@bevo.che.wisc.edu</i></a><br>
-University of Wisconsin<br>
-Department of Chemical Engineering<br>
-Madison WI 53719
-</p>
-</body>
-</html>