changeset 94:e8fc61e077fc

Merged closed branch "kai" into default.
author Kai T. Ohlhus <k.ohlhus@gmail.com>
date Tue, 01 Nov 2016 01:06:10 +0100
parents 7609e2a6faef
children 25149c27c794
files .htaccess NEWS-1.html NEWS-2.html NEWS-3.2.html NEWS-3.4.html NEWS-3.6.html NEWS-3.8.html NEWS-3.html NEWS-4.0.html README.md _config.yml _config_octave.yml _config_test.yml _includes/footer.html _includes/head.html _includes/header.html _layouts/community-news.html _posts/2012-12-31-news-archive.markdown _posts/2013-01-28-oct-conf-milano.markdown _posts/2013-02-21-octave-3.6.4-released.markdown _posts/2013-12-31-octave-3.8.0-released.markdown _posts/2014-03-07-google-summer-of-code.markdown _posts/2014-03-07-octave-3.8.1-released.markdown _posts/2014-09-22-oct-conf-montreal.markdown _posts/2015-05-29-octave-4.0.0-released.markdown _posts/2015-09-23-oct-conf-darmstadt.markdown _posts/2016-03-23-octave-4.0.1-released.markdown _posts/2016-07-02-octave-4.0.3-released.markdown about.md bugs.md commercial-support.md community-news.md contribute.md donate.md download.md examples.md feed.xml get-involved.md img/example-mesh.png img/example-plot.png img/logo.png img/mesh.png img/octave-logo.svg img/plot.png img/sinePlot.png install.md license.md missing.md news.md support-expectations.md support.md
diffstat 51 files changed, 6821 insertions(+), 491 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/.htaccess	Tue Nov 01 01:06:10 2016 +0100
@@ -0,0 +1,25 @@
+<FilesMatch "\.(in|m4)$">
+  Order allow,deny
+  Deny from all
+</FilesMatch>
+
+<FilesMatch "Makefile$">
+  Order allow,deny
+  Deny from all
+</FilesMatch>
+
+<FilesMatch "CVS">
+  Order allow,deny
+  Deny from all
+</FilesMatch>
+
+RewriteEngine on
+
+RewriteBase /software/octave/
+
+RewriteRule ^octave.pdf doc/octave-4.0.3.pdf [L]
+RewriteRule ^NEWS.html NEWS-4.0.html [L]
+RewriteRule ^contribute.html get-involved.html [L]
+
+RewriteRule ^doc/interpreter$ doc/interpreter/ [R,L]
+RewriteRule ^doc/interpreter/(.*) doc/v4.0.3/$1 [L]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/NEWS-1.html	Tue Nov 01 01:06:10 2016 +0100
@@ -0,0 +1,1644 @@
+<!doctype html public "-//IETF//DTD HTML Strict//EN">
+<html>
+<head>
+<title> Changes in Octave version 1 </title>
+</head>
+
+<body>
+<h1> News for Octave Version 1 </h1>
+<hr>
+
+<h2>Summary of changes for version 1.1.1</h2>
+
+<pre>
+  * New built-in variables, default_return_value and
+    define_all_return_values.
+
+    If define_all_return_values is set to "false", Octave does not do
+    anything special for return values that are left undefined, and
+    you will get an error message if you try to use them.  For
+    example, if the function
+
+      function [x, y] = f ()
+        y = 1;
+      endfunction
+
+    is called as
+
+      octave:13> [a, b] = f ()
+
+    Octave will print an error message for the attempt to assign an
+    undefined value to `a'.
+
+    This is incompatible with Matlab, which will define the return
+    variable `x' to be the empty matrix.  To get the Matlab-like
+    behavior, you can set the variable define_all_return_values to
+    "true" (the default is "false") and default_return_value to `[]'
+    (the default).  Then, any return values that remain undefined when
+    the function returns will be initialized to `[]'.
+
+    If the function is called without explicitly asking for an output,
+    it will succeed.  This behavior is compatible and unchanged from
+    previous versions of Octave.
+
+  * New built-in variable suppress_verbose_help_message.  If set to
+    "true", Octave will not add additional help information to the end
+    of the output from the help command and usage messages for
+    built-in commands.  The default value is "false".
+
+  * New built-in variable PS4 is used as the prefix of echoed input
+    (enabled with the --echo-input (-x) option).
+
+  * The function size() now accepts an optional second argument.
+
+  * Output from `save - ...' now goes through the pager.
+
+  * The break statement may also be used to exit a function, for
+    compatibility with Matlab.
+
+  * The directory tree for installing Octave is now closer to
+    conforming with the current GNU standards.
+
+  * More bug fixes.
+</pre>
+
+<h2>Summary of changes for version 1.1.0</h2>
+
+<pre>
+  * Octave now requires g++ 2.6.3 or later.  This change is necessary
+    to make template instantiations cleaner, and to avoid having to
+    have special cases in the code for earlier versions of gcc.
+
+  * A new data structure type has been added.  The implementation uses
+    an associative array with indices limited to strings, but the
+    syntax is more like C-style structures.  here are some examples of
+    using it.
+
+    Elements of structures can be of any type, including structures:
+
+      octave:1> x.a = 1;
+      octave:2> x.b = [1, 2; 3, 4];
+      octave:3> x.c = "string";
+      octave:4> x
+      x =
+
+      <structure: a b c>
+
+      octave:5> x.a
+      x.a = 1
+      octave:6> x.b
+      x.b =
+
+        1  2
+        3  4
+
+      octave:7> x.c
+      x.c = string
+      octave:8> x.b.d = 3
+      x.b.d = 3
+      octave:9> x.b
+      x.b =
+
+      <structure: d>
+
+      octave:10> x.b.d
+      x.b.d = 3
+
+    Functions can return structures:
+
+      octave:1> a = rand (3) + rand (3) * I;
+      octave:2> function y = f (x)
+      > y.re = real (x);
+      > y.im = imag (x);
+      > endfunction
+      octave:3> f (a)
+      ans =
+
+      <structure: im re>
+
+      octave:4> ans.im
+      ans.im =
+
+        0.093411  0.229690  0.627585
+        0.415128  0.221706  0.850341
+        0.894990  0.343265  0.384018
+
+      octave:5> ans.re
+      ans.re =
+
+        0.56234  0.14797  0.26416
+        0.72120  0.62691  0.20910
+        0.89211  0.25175  0.21081
+
+    Return lists can include structure elements:
+
+      octave:1> [x.u, x.s, x.v] = svd ([1, 2; 3, 4])
+      x.u =
+
+        -0.40455  -0.91451
+        -0.91451   0.40455
+
+      x.s =
+
+        5.46499  0.00000
+        0.00000  0.36597
+
+      x.v =
+
+        -0.57605   0.81742
+        -0.81742  -0.57605
+
+      octave:8> x
+      x =
+
+      <structure: s u v>
+
+    This feature should be considered experimental, but it seems to
+    work ok.  Suggestions for ways to improve it are welcome.
+
+  * Octave now supports a limited form of exception handling modelled
+    after the unwind-protect form of Lisp:
+
+      unwind_protect
+        BODY
+      unwind_protect_cleanup
+        CLEANUP
+      end_unwind_protect
+
+    Where BODY and CLEANUP are both optional and may contain any
+    Octave expressions or commands.  The statements in CLEANUP are
+    guaranteed to be executed regardless of how control exits BODY.
+
+    This is useful to protect temporary changes to global variables
+    from possible errors.  For example, the following code will always
+    restore the original value of the built-in variable
+    do_fortran_indexing even if an error occurs while performing the
+    indexing operation.
+
+      save_do_fortran_indexing = do_fortran_indexing;
+      unwind_protect
+        do_fortran_indexing = "true";
+        elt = a (idx)
+      unwind_protect_cleanup
+        do_fortran_indexing = save_do_fortran_indexing;
+      end_unwind_protect
+
+    Without unwind_protect, the value of do_fortran_indexing would not
+    be restored if an error occurs while performing the indexing
+    operation because evaluation would stop at the point of the error
+    and the statement to restore the value would not be executed.
+
+  * Recursive directory searching has been implemented using Karl
+    Berry's kpathsea library.  Directories below path elements that
+    end in // are searched recursively for .m files.
+
+  * Octave now waits for additional input when a pair of parentheses
+    is `open' instead of giving an error.  This allows one to write
+    statements like this
+
+      if (big_long_variable_name == other_long_variable_name
+          || not_so_short_variable_name > 4
+          && y > x)
+        some (code, here);
+
+    without having to clutter up the if statement with continuation
+    characters.
+
+  * Continuation lines are now allowed in string constants and are
+    handled correctly inside matrix constants.
+
+  * Both `...{whitespace}\n' and `\{whitespace}\n' can be used to
+    introduce continuation lines, where {whitespace} may include
+    spaces, tabs and comemnts.
+
+  * The script directory has been split up by topic.
+
+  * Dynamic linking mostly works with dld.  The following limitations
+    are known problems:
+
+    -- Clearing dynamically linked functions doesn't work.
+
+    -- Dynamic linking only works with dld, which has not been ported
+       to very many systems yet.
+
+    -- Configuring with --enable-lite-kernel seems to mostly work to
+       make nonessential built-in functions dynamically loaded, but
+       there also seem to be some problems.  For example, fsolve seems
+       to always return info == 3.  This is difficult to debug since
+       gdb won't seem to allow breakpoints to be set inside
+       dynamically loaded functions.
+
+    -- Octave uses a lot of memory if the dynamically linked functions
+       are compiled with -g.  This appears to be a limitation with
+       dld, and can be avoided by not using -g to compile functions
+       that will be linked dynamically.
+
+  * fft2 and ifft2 are now built-in functions.
+
+  * The `&&' and `||' logical operators are now evaluated in a
+    short-circuit fashion and work differently than the element by
+    element operators `&' and `|'.  See the Octave manual for more
+    details.
+
+  * Expressions like 1./m are now parsed as 1 ./ m, not 1. / m.
+
+  * The replot command now takes the same arguments as gplot or
+    gsplot (except ranges, which cannot be respecified with replot
+    (yet)) so you can add additional lines to existing plots.
+
+  * The hold command has been implemented.
+
+  * New function `clearplot' clears the plot window.  The name `clg'
+    is aliased to `clearplot' for compatibility with Matlab.
+
+  * The commands `gplot clear' and `gsplot clear' are equivalent to
+    `clearplot'.  (Previously, `gplot clear' would evaluate `clear' as
+    an ordinary expression and clear all the visible variables.)
+
+  * The Matlab-style plotting commands have been improved.  They now
+    accept line-style arguments, multiple x-y pairs, and other plot
+    option flags.  For example,
+ 
+      plot (x, y, "@12", x, y2, x, y3, "4", x, y4, "+")
+
+    results in a plot with
+
+      y  plotted with points of type 2 ("+") and color 1 (red).
+      y2 plotted with lines.
+      y3 plotted with lines of color 4.
+      y4 plotted with points which are "+"s.
+
+    the help message for `plot' and `plot_opt' provide full
+    descriptions of the options.
+
+  * NaN is now dropped from plot data, and Inf is converted to a
+    very large value before calling gnuplot.
+
+  * Improved load and save commands:
+
+    -- The save and load commands can now read and write a new binary
+       file format.  Conversion to and from IEEE big and little endian
+       formats is handled automatically.  Conversion for other formats
+       has not yet been implemented.
+
+    -- The load command can now read Matlab .mat files, though it is
+       not yet able to read sparse matrices or handle conversion for
+       all data formats.
+
+    -- The save command can write Matlab .mat files.
+
+    -- The load command automatically determines the save format
+       (binary, ascii, or Matlab binary).
+
+    -- The default format for the save command is taken from the
+       built-in variable `default_save_format'.
+
+    -- The save and load commands now both accept a list of globbing
+       patterns so you can easily load a list of variables from a
+       file.
+
+    -- The load command now accepts the option -list, for listing the
+       variable names without actually loading the data.  With
+       -verbose, it prints a long listing.
+
+    -- The load command now accepts the option -float-binary, for
+       saving floating point data in binary files in single precision.
+
+  * who and whos now accept a list of globbing patterns so you can
+    limit the lists of variables and functions to those that match a
+    given set of patterns.
+
+  * New functions for manipulating polynomials
+      
+      compan     -- companion matrix corresponding to polynomial coefficients
+      conv       -- convolve two vectors
+      deconv     -- deconvolve two vectors
+      roots      -- find the roots of a polynomial
+      poly       -- characteristic polynomial of a matrix
+      polyderiv  -- differentiate a polynomial
+      polyinteg  -- integrate a polynomial
+      polyreduce -- reduce a polynomial to minimum number of terms
+      polyval    -- evaluate a polynomial at a point
+      polyvalm   -- evaluate a polynomial in the matrix sense
+      residue    -- partial fraction expansion corresponding to the ratio
+                    of two polynomials
+
+  * New functions for manipulating sets
+
+      create_set   -- create a set of unique values
+      complement   -- find the complement of two sets
+      intersection -- find the intersection of two sets
+      union        -- find the union of two sets
+
+  * New elementary functions:
+
+      acot   acoth   acsc   acsch
+      asec   asech   cot    coth
+      csc    csch    log2   sec
+      sech
+
+  * New special functions:
+
+      beta   -- beta function
+      betai  -- incomplete beta function
+      gammai -- incomplete gamma function
+
+  * New image processing functions:
+
+      colormap  -- set and return current colormap
+      gray      -- set a gray colormap
+      gray2ind  -- image format conversion
+      image     -- display an image
+      imagesc   -- scale and display an image
+      imshow    -- display images
+      ind2gray  -- image format conversion
+      ind2rgb   -- image format conversion
+      loadimage -- load an image from a file
+      ntsc2rgb  -- image format conversion
+      ocean     -- set a color colormap
+      rgb2ind   -- image format conversion
+      rgb2ntsc  -- image format conversion
+      saveimage -- save an image to a file
+
+  * New time and date funcitons:
+
+      tic          -- set wall-clock timer
+      toc          -- get elapsed wall-clock time, since timer last set
+      etime        -- another way to get elapsed wall-clock time
+      cputime      -- get CPU time used since Octave started
+      is_leap_year -- is the given year a leap year?
+
+  * Other new functions:
+
+      bug_report -- submit a bug report to the bug-octave mailing list
+
+      toascii -- convert a string to a matrix of ASCII character codes
+
+      octave_tmp_file -- generate a unique temporary file name
+
+      undo_string_escapes -- replace special characters in a string by
+                             their backslash forms
+
+      is_struct -- determine whether something is a structure data type
+
+      feof   -- check EOF condition for a specified file
+      ferror -- check error state for a specified file
+      fread  -- read binary data from a file
+      fwrite -- write binary data to a file
+
+      file_in_path -- check to see if named file exists in given path
+
+      kbhit  -- get a single character from the terminal
+
+      axis   -- change plot ranges
+      hist   -- plot histograms
+
+      diary  -- save commands and output to a file
+
+      type   -- show the definition of a function
+      which  -- print the type of an identifier or the location of a
+                function file
+
+      isieee  -- Returns 1 if host uses IEEE floating point
+      realmax -- Returns largest floating point number
+      realmin -- Returns smallest floating point number
+
+      gcd     -- greatest common divisor
+      lcm     -- least common multiple
+
+      null    -- orthonormal basis of the null space of a matrix
+      orth    -- orthonormal basis of the range space of a matrix
+
+      fft2    -- two-dimensional fast fourier transform
+      ifft2   -- two-dimensional inverse fast fourier transform
+      filter  -- digital filter
+      fftfilt -- filter using fft
+      fftconv -- convolve to vectors using fft
+      sinc    -- returns sin(pi*x)/(pi*x)
+      freqz   -- compute the frequency response of a filter
+
+  * The meaning of nargin (== args.length ()) in built-in functions
+    has been changed to match the meaning of nargin in user-defined
+    functions.
+
+  * Variable return lists.  Octave now has a real mechanism for
+    handling functions that return an unspecified number of values,
+    so it is no longer necessary to place an upper bound on the number
+    of outputs that a function can produce.
+
+    Here is an example of a function that uses the new syntax to
+    produce n values:
+
+      function [...] = foo (n)
+        for i = 1:n
+          vr_val (i * x);
+        endfor
+      endfunction
+
+  * New keyword, all_va_args, that allows the entire list of va_args
+    to be passed to another function.  For example, given the functions
+
+      function f (...)
+        while (nargin--)
+          disp (va_arg ())
+        endwhile
+      endfunction
+      function g (...)
+        f ("begin", all_va_args, "end")
+      endfunction
+
+    the statement
+
+      g (1, 2, 3)
+
+    prints
+
+      begin
+      1
+      2
+      3
+      end
+
+    all_va_args may be used more than once, but can only be used
+    within functions that take a variable number of arguments.
+
+  * If given a second argument, svd now returns an economy-sized
+    decomposition, eliminating the unecessary rows or columns of U or
+    V.
+
+  * The max and min functions correctly handle complex matrices in
+    which some columns contain real values only.
+
+  * The find function now handles 2 and 3 output arguments.
+
+  * The qr function now allows computation of QR with pivoting.
+
+  * hilb() is much faster for large matrices.
+
+  * computer() is now a built-in function.
+
+  * pinv() is now a built-in function.
+
+  * The output from the history command now goes through the pager.
+
+  * If a function is called without assigning the result, nargout is
+    now correctly set to 0.
+
+  * It is now possible to write functions that only set some return
+    values.  For example, calling the function
+
+      function [x, y, z] = f () x = 1; z = 2; endfunction
+
+    as
+
+      [a, b, c] = f ()
+
+    produces:
+
+      a = 1
+
+      b = [](0x0)
+
+      c = 2
+
+  * The shell_cmd function has been renamed to system (the name
+    shell_cmd remains for compatibility).  It now returns [output, status].
+
+  * New built-in variable `OCTAVE_VERSION'.  Also a new function,
+    version, for compatibility with Matlab.
+
+  * New built-in variable `automatic_replot'.  If it is "true", Octave
+    will automatically send a replot command to gnuplot each time the
+    plot changes.  Since this is fairly inefficient, the default value
+    is "false".
+
+  * New built-in variable `whitespace_in_literal_matrix' allows some
+    control over how Octave decides to convert spaces to commas in
+    matrix expressions like `[m (1)]'.
+
+    If the value of `whitespace_in_literal_matrix' is "ignore", Octave
+    will never insert a comma or a semicolon in a literal matrix list.
+    For example, the expression `[1 2]' will result in an error
+    instead of being treated the same as `[1, 2]', and the expression
+
+      [ 1, 2,
+        3, 4 ]
+
+    will result in the vector [1 2 3 4] instead of a matrix.
+
+    If the value of `whitespace_in_literal_matrix' is "traditional",
+    Octave will convert spaces to a comma between identifiers and `('.
+    For example, given the matrix
+
+      m = [3 2]
+
+    the expression
+
+      [m (1)]
+
+    will be parsed as
+
+      [m, (1)]
+
+    and will result in
+
+      [3 2 1]
+
+    and the expression
+
+      [ 1, 2,
+        3, 4 ]
+
+    will result in a matrix because the newline character is converted
+    to a semicolon (row separator) even though there is a comma at the
+    end of the first line (trailing commas or semicolons are ignored).
+    This is apparently how Matlab behaves.
+
+    Any other value for `whitespace_in_literal_matrix' results in
+    behavior that is the same as traditional, except that Octave does
+    not convert spaces to a comma between identifiers and `('.
+    For example, the expression
+
+      [m (1)]
+
+    will produce 3.  This is the way Octave has always behaved.
+
+  * Line numbers in error messages for functions defined in files and
+    for script files now correspond to the file line number, not the
+    number of lines after the function keyword appeared.
+
+  * Octave now extracts help from script files.  The comments must
+    come before any other statements in the file.
+
+  * In function files, the first block of comments in the file will
+    now be interpreted as the help text if it doesn't look like the
+    Octave copyright notice.  Otherwise, Octave extracts the first set
+    of comments after the function keyword.
+
+  * The function clock is more accurate on systems that have the
+    gettimeofday() function.
+
+  * The standard output stream is now automatically flushed before
+    reading from stdin with any of the *scanf() functions.
+
+  * Expanded reference card.
+
+  * The Octave distribution now includes a frequently asked questions
+    file, with answers.  Better answers and more questions (with
+    answers!) are welcome.
+
+  * New option --verbose.  If Octave is invoked with --verbose and not
+    --silent, a message is printed if an octaverc file is read while
+    Octave is starting.
+
+  * An improved configure script generated by Autoconf 2.0.
+
+  * Lots of bug fixes.
+</pre>
+
+<h2>Summary of changes for version 1.0</h2>
+
+<pre>
+  * C-style I/O functions now handle files referenced by name or by
+    number more consistently.
+</pre>
+
+<h2>Summary of changes for version 0.83</h2>
+
+<pre>
+  * Loading global symbols should work now.
+
+  * Clearing the screen doesn't reprint the prompt unnecessarily.
+
+  * The operations <complex scalar> OP <real matrix> for OP == +, -,
+    *, or ./ no longer crash Octave.
+
+  * More portability and configuration fixes.
+</pre>
+
+<h2>Summary of changes for version 0.82</h2>
+
+<pre>
+  * Octave now comes with a reference card.
+
+  * The manual has been improved, but more work remains to be done.
+
+  * The atanh function now works for complex arguments.
+
+  * The asin, acos, acosh, and atanh functions now work properly when
+    given real-valued arguments that produce complex results.
+
+  * SEEK_SET, SEEK_CUR, and SEEK_END are now constants.
+
+  * The `using' qualifier now works with gplot and gsplot when the
+    data to plot is coming directly from a file.
+
+  * The strcmp function now works correctly for empty strings.
+
+  * Eliminated bogus parse error for M-files that don't end with `end'
+    or `endfunction'.
+
+  * For empty matrices with one nonzero dimension, the +, -, .*, and
+    ./ operators now correctly preserve the dimension.
+
+  * Octave no longer crashes if you type ^D at the beginning of a line
+    in the middle of defining a loop or if statement.
+
+  * On AIX systems, Back off on indexing DiagArray via Proxy class to
+    avoid gcc (or possibly AIX assembler?) bug. 
+
+  * Various other bug and portability fixes.
+</pre>
+
+<h2>Summary of changes for version 0.81</h2>
+
+<pre>
+  * Octave no longer dumps core if you try to define a function in
+    your .octaverc file.
+
+  * Fixed bug in Array class that resulted in bogus off-diagonal
+    elements when computing eigenvalue and singular value
+    decompositions.
+
+  * Fixed bug that prevented lsode from working on the SPARCstation,
+    at least with some versions of Sun's f77.  This bug was introduced
+    in 0.80, when I changed LSODE to allow the user to abort the
+    integration from within the RHS function.
+
+  * Fixed bug that prevented global attribute of variables from being
+    saved with save(), and another that prevented load() from working
+    at all.
+</pre>
+
+<h2>Summary of changes for version 0.80</h2>
+
+<pre>
+  * I have started working on a manual for the C++ classes.  At this
+    point, it is little more than a list of function names.  If you
+    would like to volunteer to help work on this, please contact
+    bug-octave@bevo.che.wisc.edu.
+
+  * The patterns accepted by the save and clear commands now work like
+    file name globbing patterns instead of regular expressions.  I
+    apologize for any inconvenience this change may cause, but file
+    name globbing seems like a more reasonable style of pattern
+    matching for this purpose.
+
+  * It is now possible to specify tolerances and other optional inputs
+    for dassl, fsolve, lsode, npsol, qpsol, and quad.  For each of
+    these functions, there is a corresponding function X_options,
+    which takes a keyword and value arguments.  If invoked without any
+    arguments, the X_options functions print a list of possible
+    keywords and current values.  For example,
+
+      npsol_options ()
+
+    prints a list of possible options with values, and
+
+      npsol_options ("major print level", 10)
+
+    sets the major print level to 10.
+
+    The keyword match is not case sensitive, and the keywords may be
+    abbreviated to the shortest unique match.  For example,
+
+      npsol_options ("ma p", 10)
+
+    is equivalent to the statement shown above.
+
+  * The new built-in variable save_precision can be used to set the
+    number of digits preserved by the ASCII save command.
+
+  * Assignment of [] now works in most cases to allow you to delete
+    rows or columns of matrices and vectors.  For example, given a
+    4x5 matrix A, the assignment
+
+      A (3, :) = []
+
+    deletes the third row of A, and the assignment
+
+      A (:, 1:2:5) = []
+
+    deletes the first, third, and fifth columns.
+
+  * Variable argument lists.  Octave now has a real mechanism for
+    handling functions that take an unspecified number of arguments,
+    so it is no longer necessary to place an upper bound on the number
+    of optional arguments that a function can accept.
+
+    Here is an example of a function that uses the new syntax to print
+    a header followed by an unspecified number of values:
+
+      function foo (heading, ...)
+        disp (heading);
+        va_start ();
+        while (--nargin)
+          disp (va_arg ());
+        endwhile
+      endfunction
+
+    Note that the argument list must contain at least one named
+    argument (this restriction may eventually be removed), and the
+    ellipsis must appear as the last element of the argument list.
+
+    Calling va_start() positions an internal pointer to the first
+    unnamed argument and allows you to cycle through the arguments
+    more than once.  It is not necessary to call va_start() if you
+    do not plan to cycle through the arguments more than once.
+
+  * Recursive functions should work now.
+
+  * The environment variable OCTAVE_PATH is now handled in the same
+    way as TeX handles TEXINPUTS.  If the path starts with `:', the
+    standard path is prepended to the value obtained from the
+    environment.  If it ends with `:' the standard path is appended to
+    the value obtained from the environment.
+
+  * New functions, from Kurt Hornik (hornik@neuro.tuwien.ac.at) and
+    the Department of Probability Theory and Statistics TU Wien,
+    Austria:
+
+     corrcoef    -- corrcoef (X, Y) is the correlation between the i-th
+                    variable in X and the j-th variable in Y
+                    corrcoef (X) is corrcoef (X, X)
+     cov         -- cov (X, Y) is the covariance between the i-th
+                    variable in X and the j-th variable in Y
+                    cov (X) is cov (X, X)
+     gls         -- generalized least squares estimation
+     kurtosis    -- kurtosis(x) = N^(-1) std(x)^(-4) SUM_i (x(i)-mean(x))^4 - 3
+                    If x is a matrix, return the row vector containing
+                    the kurtosis of each column
+     mahalanobis -- returns Mahalanobis' D-square distance between the
+                    multivariate samples X and Y, which must have the
+                    same number of components (columns), but may have
+                    a different number of observations (rows)
+     ols         -- ordinary least squares estimation
+     pinv        -- returns the pseudoinverse of X; singular values
+                    less than tol are ignored
+     skewness    -- skewness (x) = N^(-1) std(x)^(-3) SUM_i (x(i)-mean(x))^3
+                    if x is a matrix, return the row vector containing
+                    the skewness of each column
+
+  * Errors in user-supplied functions called from dassl, fsolve,
+    lsode, npsol, and quad are handled more gracefully.
+
+  * Programming errors in the use of the C++ classes within Octave
+    should no longer cause Octave to abort.  Instead, Octave's error
+    handler function is called and execution continues as best as is
+    possible.  This should result in eventually returning control to
+    the top-level Octave prompt.  (It would be nice to have a real
+    exception handling mechanism...)
+
+  * A number of memory leaks have been eliminated.  Thanks to
+    Fong Kin Fui <fui@ee.nus.sg> for reporting them.
+
+  * The C++ matrix classes are now derived from a generic
+    template-based array class.
+
+  * The readline function operate-and-get-next (from bash) is now
+    available and bound to C-O by default.
+
+  * Octave now uses the version of readline currently distributed with
+    bash-1.13.  On some systems, interactive invocations of Octave
+    will now blink the cursor to show matching parens.
+
+  * By default, include files are now installed in
+    $prefix/include/octave instead of $prefix/include.
+
+  * Octave now uses a config.h file instead of putting all defines on
+    the compiler command line.
+</pre>
+
+<h2>Summary of changes for version 0.79</h2>
+
+<pre>
+  * New control systems functions:
+
+     dgram -- Returns the discrete controllability and observability gramian.
+     dlqr  -- Discrete linear quadratic regulator design.
+     dlqe  -- Discrete linear quadratic estimator (Kalman Filter) design.
+     c2d   -- Convert continuous system description to discrete time
+              description assuming zero-order hold and given sample time.
+
+  * The max (min) functions can now return the index of the max (min)
+    value as a second return value.
+</pre>
+
+<h2>Summary of changes for version 0.78</h2>
+
+<pre>
+  * Octave's handling of global variables has been completely
+    rewritten.  To access global variables inside a function, you must
+    now declare them to be global within the function body.  Likewise,
+    if you do not declare a variable as global at the command line,
+    you will not have access to it within a function, even if it is
+    declared global there.  For example, given the function
+
+      function f ()
+        global x = 1;
+        y = 2;
+      endfunction
+
+    the global variable `x' is not visible at the top level until the
+    command
+
+      octave:13> global x
+
+    has been evaluated, and the variable `y' remains local to the
+    function f() even if it is declared global at the top level.
+
+    Clearing a global variable at the top level will remove its global
+    scope and leave it undefined.  For example,
+
+      octave:1> function f ()   # Define a function that accesses
+      >  global x;              #   the global variable `x'.
+      >  x
+      > endfunction
+      octave:2> global x = 1    # Give the variable `x' a value.
+      octave:3> f ()            # Evaluating the function accesses the
+      x = 1                     #   global `x'.
+      octave:4> clear x         # Remove `x' from global scope, clear value.
+      octave:5> x = 2           # Define new local `x' at the top level
+      x = 2
+      octave:6> f               # The global `x' is no longer defined.
+      error: `x' undefined near line 1 column 25
+      error: evaluating expression near line 1, column 25
+      error: called from `f'
+      octave:7> x               # But the local one is.
+      x = 2
+
+  * The new function, `is_global (string)' returns 1 if the variable
+    named by string is globally visible.  Otherwise, returns 0.
+
+  * The implementation of `who' has changed.  It now accepts the
+    following options:
+
+      -b -builtins   -- display info for built-in variables and functions
+      -f -functions  -- display info for currently compiled functions
+      -v -variables  -- display info for user variables
+      -l -long       -- display long info
+
+    The long output looks like this:
+
+      octave:5> who -l
+
+      *** currently compiled functions:
+
+      prot  type               rows   cols  name
+      ====  ====               ====   ====  ====
+       wd   user function         -      -  f
+
+      *** local user variables:
+
+      prot  type               rows   cols  name
+      ====  ====               ====   ====  ====
+       wd   real scalar           1      1  y
+
+      *** globally visible user variables:
+
+      prot  type               rows   cols  name
+      ====  ====               ====   ====  ====
+       wd   complex matrix       13     13  x
+
+    where the first character of the `protection' field is `w' if the
+    symbol can be redefined, and `-' if it has read-only access.  The
+    second character may be `d' if the symbol can be deleted, or `-'
+    if the symbol cannot be cleared.
+
+  * The new built-in variable ignore_function_time_stamp can be used
+    to prevent Octave from calling stat() each time it looks up
+    functions defined in M-files.  If set to "system", Octave will not
+    automatically recompile M-files in subdirectories of
+    $OCTAVE_HOME/lib/VERSION if they have changed since they were last
+    compiled, but will recompile other M-files in the LOADPATH if they
+    change.  If set to "all", Octave will not recompile any M-files
+    unless their definitions are removed with clear.  For any other
+    value of ignore_function_time_stamp, Octave will always check to
+    see if functions defined in M-files need to recompiled.  The
+    default value of ignore_function_time_stamp is "system".
+
+  * The new built-in variable EDITOR can be used to specify the editor
+    for the edit_history command.  It is set to the value of the
+    environment variable EDITOR, or `vi' if EDITOR is not set, or is
+    empty.
+
+  * There is a new built-in variable, INFO_FILE, which is used as the
+    location of the info file.  Its initial value is
+    $OCTAVE_HOME/info/octave.info, so `help -i' should now work
+    provided that OCTAVE_HOME is set correctly, even if Octave is
+    installed in a directory different from that specified at compile
+    time.
+
+  * There is a new command line option, --info-file FILE, that may be
+    used to set Octave's idea of the location of the info file.  It
+    will override any value of OCTAVE_INFO_FILE found in the
+    environment, but not any INFO_FILE="filename" commands found in
+    the system or user startup files. 
+
+  * Octave's Info reader will now recognize gzipped files that have
+    names ending in `.gz'.
+
+  * The save command now accepts regular expressions as arguments.
+    Note that these patterns are regular expressions, and do not work
+    like filename globbing.  For example, given the variables `a',
+    `aa', and `a1', the command `save a*' saves `a' and `aa' but not
+    `a1'.  To match all variables beginning with `a', you must use an
+    expression like `a.*' (match all sequences beginning with `a'
+    followed by zero or more characters).
+
+  * Line and column information is included in more error messages.
+</pre>
+
+<h2>Summary of changes for version 0.77</h2>
+
+<pre>
+  * Improved help.  The command `help -i topic' now uses the GNU Info
+    browser to display help for the given topic directly from the
+    Texinfo documenation.
+
+  * New function: chol -- Cholesky factorization.
+</pre>
+
+<h2>Summary of changes for version 0.76</h2>
+
+<pre>
+  * Better run-time error messages.  Many now include line and column
+    information indicating where the error occurred.  Octave will also
+    print a traceback for errors occurring inside functions. If you
+    find error messages that could use improvement, or errors that
+    Octave fails to catch, please send a bug report to
+    bug-octave@bevo.che.wisc.edu.
+
+  * If gplot (or gsplot) is given a string to plot, and the string
+    does not name a file, Octave will pass the string along to gnuplot
+    directly.  This allows commands like
+
+      gplot "sin (x)" w l, data w p
+
+    to work (assuming that data is a variable containing a matrix of
+    values).
+
+  * Long options (--help, --version, etc.) are supported.
+</pre>
+
+<h2>Summary of changes for version 0.75</h2>
+
+<pre>
+  * The documentation is much more complete, but still could use a lot
+    of work.
+
+  * The history function now prints line numbers by default.  The
+    command `history -q' will  omit them.
+
+  * The clear function now accepts regular expressions.
+
+  * If gplot (or gsplot) is given a string to plot, and the string
+    names a file, Octave attempts to plot the contents of the file.
+
+  * New functions:
+
+    history:
+
+      run_history  -- run commands from the history list.
+      edit_history -- edit commands from the history list with your
+                      favorite editor.
+
+    linear algebra:
+
+      balance         -- Balancing for algebraic and generalized
+                         eigenvalue problems.
+      givens          -- Givens rotation.
+      is_square       -- Check to see if a matrix is square.
+      qzhess          -- QZ decomposition of the matrix pencil (a - lambda b).
+      qzval           -- Generalized eigenvalues for real matrices.
+      syl             -- Sylvester equation solver.
+
+    control systems:
+
+      is_symmetric    -- Check to see if a matrix is symmetric.
+      abcddim         -- Check dimensions of linear dynamic system [A,B,C,D].
+      is_controllable -- Check to see if [A,B,C,D] is controllable.
+      is_observable   -- Check to see if [A,B,C,D] is observable.
+      are             -- Solve algebraic Ricatti equation.
+      dare            -- Solve discrete-time algebraic Ricatti equation.
+      lqe             -- Kalman filter design for continuous linear system.
+      lqr             -- Linear Quadratic Regulator design.
+      lyap            -- Solve Lyapunov equation.
+      dlyap           -- Solve discrete Lyapunov equation.
+      tzero           -- Compute the transmission zeros of [A,B,C,D].
+</pre>
+
+<h2>Summary of changes for version 0.74</h2>
+
+<pre>
+  * Formal parameters to functions are now always considered to be
+    local variables, so things like
+
+      global x = 0
+      global y = 0
+      function y = f (x) x = 1; y = x; end
+      f (x)
+
+    result in the function returning 1, with the global values of x
+    and y unchanged.
+
+  * Multiple assignment expressions are now allowed to take indices,
+    so things like
+
+      octave:13> [a([1,2],[3,4]), b([5,6],[7,8])] = lu ([1,2;3,4])
+
+    will work correctly.
+</pre>
+
+<h2>Summary of changes for version 0.73</h2>
+
+<pre>
+  * Saving and loading global variables works correctly now.
+
+  * The save command no longer saves built-in variables.
+
+  * Global variables are more reliable.
+
+  * Matrices may now have one or both dimensions zero, so that
+    operations on empty matrices are now handled more consistently.
+
+    By default, dimensions of the empty matrix are now printed along
+    with the empty matrix symbol, `[]'.  For example:
+
+      octave:13> zeros (3, 0)
+      ans = 
+
+      [](3x0)
+
+    The new variable `print_empty_dimensions' controls this behavior.
+    
+    See also Carl de Boor, An Empty Exercise, SIGNUM, Volume 25,
+    pages 2--6, 1990, or C. N. Nett and W. M. Haddad, A
+    System-Theoretic Appropriate Realization of the Empty Matrix
+    Concept, IEEE Transactions on Automatic Control, Volume 38,
+    Number 5, May 1993.
+
+  * The right and left division operators `/' and `\' will now find a
+    minimum norm solution if the system is not square, or if the
+    coefficient matrix is singular.
+
+  * New functions:
+
+      hess   -- Hessenberg decomposition
+      schur  -- Ordered Schur factorization
+      perror -- print error messages corresponding to error codes
+                returned from the functions fsolve, npsol, and qpsol
+                (with others to possibly be added later).
+
+  * Octave now prints a warning if it finds anything other than
+    whitespace or comments after the final `end' or `endfunction'
+    statement.
+
+  * The bodies of functions, and the for, while, and if commands are
+    now allowed to be empty.
+
+  * Support for Gill and Murray's QPSOL has been added.  Like NPSOL,
+    QPSOL is not freely redistributable either, so you must obtain
+    your own copy to be able to use this feature.  More information
+    about where to find QPSOL and NPSOL are in the file README.NLP.
+</pre>
+
+<h2>Summary of changes for version 0.72</h2>
+
+<pre>
+  * For numeric output, columns are now lined up on the decimal point.
+    (This requires libg++-2.3.1 or later to work correctly).
+
+  * If octave is running interactively and the output intended for the
+    screen is longer than one page and a pager is available, it is
+    sent to the pager through a pipe.  You may specify the program to
+    use as the pager by setting the variable PAGER.  PAGER may also
+    specify a command pipeline.
+
+  * Spaces are not always significant inside square brackets now, so
+    commands like
+
+      [ linspace (1, 2) ]
+
+    will work.  However, some possible sources of confusion remain
+    because Octave tries (possibly too hard) to determine exactly what
+    operation is intended from the context surrounding an operator.
+    For example:
+
+    -- In the command 
+
+         [ 1 - 1 ]
+
+       the `-' is treated as a binary operator and the result is the
+       scalar 0, but in the command
+
+         [ 1 -1 ]
+
+       the `-' is treated as a unary operator and the result is the
+       vector [ 1 -1 ].
+
+    -- In the command
+
+         a = 1; [ 1 a' ]
+
+       the single quote character `'' is treated as a transpose operator
+       and the result is the vector [ 1 1 ], but in the command
+
+         a = 1; [ 1 a ' ]
+
+       an error message indicating an unterminated string constant is
+       printed.
+
+  * Assignments are just expressions now, so they are valid anywhere
+    other expressions are.  This means that things like
+
+      if (a = n < m) ... endif
+
+    are valid.  This is parsed as:  compare `n < m', assign the result
+    to the variable `a', and use it as the test expression in the if
+    statement.
+
+    To help avoid errors where `=' has been used but `==' was
+    intended, Octave issues a warning suggesting parenthesis around
+    assignments used as truth values.  You can suppress this warning
+    by adding parenthesis, or by setting the value of the new built-in
+    variable `warn_assign_as_truth_value' to 'false' (the default
+    value is 'true').
+
+    This is also true for multiple assignments, so expressions like
+
+      [a, b, c] = [u, s, v] = expression
+
+    are now possible.  If the expression is a function, nargout is set
+    to the number of arguments for the right-most assignment.  The
+    other assignments need not contain the same number of elements.
+    Extra left hand side variables in an assignment become undefined.
+
+  * The default line style for plots is now `lines' instead of
+    `points'.  To change it, use the `set data style STYLE' command.
+
+  * New file handling and I/O functions:
+
+      fopen    -- open a file for reading or writing
+      fclose   -- close a file
+      fflush   -- flush output to a file
+      fgets    -- read characters from a file
+      frewind  -- set file position to the beginning of a file
+      fseek    -- set file position
+      ftell    -- tell file position
+      freport  -- print a report for all open files
+      fscanf   -- read from a file
+      sscanf   -- read from a string
+      scanf    -- read from the standard input
+
+  * New built-in variables for file and I/O functions:
+
+      stdin    -- file number corresponding to the standard input stream.
+      stdout   -- file number corresponding to the standard output stream.
+      stderr   -- file number corresponding to the standard error stream.
+
+    The following may be used as the final (optional) argument for
+    fseek: 
+
+      SEEK_SET -- set position relative to the beginning of the file.
+      SEEK_CUR -- set position relative to the current position.
+      SEEK_END -- set position relative to the end of the file.
+
+  * New function: setstr -- convert vectors or scalars to strings
+    (doesn't work for matrices yet).
+
+  * If possible, computer now prints the system type instead of
+    always printing `Hi Dave, I'm a HAL-9000'.
+
+  * Octave now properly saves and restores its internal state
+    correctly in more places.  Interrupting Octave while it is
+    executing a script file no longer causes it to exit.
+
+  * Octave now does tilde expansion on each element of the LOADPATH.
+
+  * A number of memory leaks have been plugged.
+
+  * Dependencies for C++ source files are now generated automatically
+    by g++.
+
+  * There is a new command line option, -p PATH, that may be used to
+    set Octave's loadpath from the command line.  It will override any
+    value of OCTAVE_PATH found in the environment, but not any
+    LOADPATH="path" commands found in the system or user startup files.
+
+  * It is now possible to override Octave's default idea of the
+    location of the system-wide startup file (usually stored in
+    $(prefix)/lib/octave/octaverc) using the environment variable
+    OCTAVE_HOME.  If OCTAVE_HOME has a value, Octave will look for
+    octaverc and its M-files in the directory $OCTAVE_HOME/lib/octave.
+
+    This allows people who are using binary distributions (as is
+    common with systems like Linux) to install the real octave binary
+    in any directory (using a name like octave.bin) and then install
+    a simple script like this
+
+      #!/bin/sh
+      OCTAVE_HOME=/foo/bar/baz
+      export OCTAVE_HOME
+      exec octave.bin
+
+    to be invoked as octave.
+
+</pre>
+
+<h2>Summary of changes for version 0.71</h2>
+
+<pre>
+  * Much improved plotting facility.  With this release, Octave does
+    not require a specially modified version of gnuplot, so gnuplot
+    sources are no longer distributed with Octave.  For a more
+    detailed description of the new plotting features, see the file
+    PLOTTING.
+
+  * New plotting commands:
+
+      plot            -- 2D plots
+      semilogx        -- 2D semilog plot with logscale on the x axis
+      semilogy        -- 2D semilog plot with logscale on the y axis
+      loglog          -- 2D log-log plot
+      mesh            -- 3D mesh plot
+      meshdom         -- create matrices for 3D plotting from two vectors
+      contour         -- contour plots of 3D data
+      bar             -- create bar graphs
+      stairs          -- create stairstep plots
+      polar           -- 2D plots from theta-R data
+      grid            -- turn plot grid lines on or off
+      xlabel, ylabel  -- place labels on the x and y axes of 2D plots
+      sombrero        -- demonstrate 3D plotting
+      gplot           -- 2D plot command with gnuplot-like syntax
+      gsplot          -- 3D plot command with gnuplot-like syntax
+      set             -- set plot options with gnuplot syntax
+      show            -- show plot options with gnuplot syntax
+      closeplot       -- close stream to gnuplot process
+      purge_tmp_files -- delete temporary files created by plot command
+
+  * Other new commands:
+
+      ls, dir         -- print a directory listing
+      shell_cmd       -- execute shell commands
+      keyboard        -- get input from keyboard, useful for debugging
+      menu            -- display a menu of options and ask for input
+      fft             -- fast fourier transform
+      ifft            -- inverse fast fourier transform
+
+  * Strings may be enclosed in either single or double quote
+    characters.  Double quote characters are not special within single
+    quote strings, and single quotes are not special within double
+    quote strings.
+
+  * Command name completion now works for M-file names too.
+
+  * Better help and usage messages for many functions.
+
+  * Help is now available for functions defined in M-files.  The first
+    block of comments is taken as the text of the help message.
+
+  * Numerous changes in preparation to support dynamic loading of
+    object files with dld.
+
+  * Bug fixes to make solving DAEs with dassl actually work.
+
+  * The command `save file' now saves all variables in the named file.
+
+  * If do_fortran_indexing is 'true', indexing a scalar with
+    [1,1,1,...] (n times) replicates its value n times.  The
+    orientation of the resulting vector depends on the value of
+    prefer_column_vectors.
+
+  * Things like [[1,2][3,4]] no longer cause core dumps, and invalid
+    input like [1,2;3,4,[5,6]] now produces a diagnositic message.
+
+  * The cd, save, and load commands now do tilde expansion.
+
+  * It's now possible to clear global variables and functions by name.
+
+  * Use of clear inside functions is now a parse error.
+</pre>
+
+<h2>Summary of changes for version 0.70</h2>
+
+<pre>
+  * Better parse error diagnostics.  For interactive input, you get
+    messages like
+
+      octave:1> a = 3 + * 4;
+
+      parse error:
+
+          a = 3 + * 4;
+                  ^
+
+    and for script files, the message includes the file name and input
+    line number:
+
+      octave:1> foo
+
+      parse error near line 4 of file foo.m:
+
+          a = 3 + * 4;
+                  ^
+
+  * New built-in variable PS2 which is used as the secondary prompt.
+    The default value is '> '.
+
+  * New file, octave-mode.el, for editing Octave code with GNU Emacs.
+    This is a modified version of Matthew R. Wette's matlab-mode.el.
+
+  * Better support for missing math functions.
+
+  * User preferences are now cached in a global struct so we don't
+    have to do a symbol table lookup each time we need to know what
+    they are.  This should mean slightly improved performance for
+    evaluating expressions.
+</pre>
+
+<h2>Summary of changes for version 0.69</h2>
+
+<pre>
+  * Multiple assignments are now possible, so statements like
+
+      a = b = c = 3;
+      a = b = c = [1,2;3,4];
+
+    or
+
+      c = (a = (b = 2) * 3 + 4) * 5
+
+    are legal, as are things that have even more bizarre effects, like
+
+      a(4:6,4:6) = b(2:3,2:3) = [1,2;3,4];
+
+    (try it).
+
+  * Improved parsing of strings (but they still don't work as matrix
+    elements).
+
+  * An M-file may now either define a function or be a list of
+    commands to execute.
+
+  * Better detection and conditional compilation of IEEE functions
+    isinf, finite, and isnan.
+
+  * Replacements for acosh, asinh, atanh, and gamma from the BSD math
+    library for those systems that don't have them.
+</pre>
+
+<h2>Summary of changes for version 0.68</h2>
+
+<pre>
+  * New functions:
+
+      eval  -- evaluate a string as a sequence of Octave commands. 
+      input -- print a prompt and get user input.
+</pre>
+
+<h2>Summary of changes for version 0.67</h2>
+
+<pre>
+  * New functions:
+
+      find -- return the indices of nonzero elements.
+
+  * Zero-one style indexing now works.  For example,
+
+      a = [1,2,3,4];
+      b = a([1,0,0,1])
+
+    sets b to the first and fourth elememnts of a.
+
+    Zero-one style indexing also works for indexing the left hand side
+    of an assignment.  For example,
+
+      a = rand (1,2;3,4);
+      a([0,1],:) = [-1,-2]
+
+    sets the second row of a to [-1 -2]
+
+    The behavior for the ambiguous case
+
+      a = [1,2,3,4];
+      b = a([1,1,1,1]);
+
+    is controlled by the new global variable `prefer_zero_one_indexing'.
+    If this variable is equal to 'true', b will be set to [1 2 3 4].
+    If it is false, b will be set to [1 1 1 1].  The default value is
+    'false'.
+
+  * Using the new global variable `propagate_empty_matrices', it is
+    possible to have unary andy binary operations on empty matrices
+    return an empty matrix.  The default value of this variable is
+    'warn', so that empty matrices are propagated but you get a
+    warning.  Some functions, like eig and svd have also been changed
+    to handle this.
+
+  * Empty matrices can be used in conditionals, but they always
+    evaluate to `false'.  With propagate_empty_matrices = 'true', both
+    of the following expressions print 0: 
+
+      if  [], 1, else 0, end
+      if ~[], 1, else 0, end
+
+  * Octave no longer converts input like `3.2 i' or `3 I' to complex
+    constants directly because that causes problems inside square
+    brackets, where spaces are important.  This abbreviated notation
+    *does* work if there isn't a space between the number and the i,
+    I, j, or J.
+</pre>
+
+<h2>Summary of changes for version 0.66</h2>
+
+<pre>
+  * Logical unary not operator (~ or !) now works for complex.
+
+  * Left division works.
+
+  * Right and left element by element division should work correctly
+    now.
+
+  * Numbers like .3e+2 are no longer errors.
+
+  * Indexing a matrix with a complex value doesn't cause a core dump.
+
+  * The min and max functions should work correctly for two arguments.
+
+  * Improved (I hope!) configuration checks.
+
+  * Octave is now installed as octave-M.N, where M and N are version
+    numbers, and octave is a link to that file.  This makes it
+    possible to have more than one version of the interpreter installed.
+</pre>
+
+<h2>Summary of changes for version 0.63</h2>
+
+<pre>
+  * The reshape function works again.
+
+  * Octave now converts input like `3.2i' or `3 I' or `2.3e5 j' to be 
+    complex constants directly, rather than requiring an expression
+    like `3.3 * i' to be evaluated.
+</pre>
+
+<h2>Summary of changes for version 0.61</h2>
+
+<pre>
+  * Octave has been successfully compiled using gcc 2.3.3 and libg++ 2.3.
+    on a 486 system running Linux.
+
+  * The win_texas_lotto function is now called texas_lotto (it's a
+    script file, and win_texas_lotto.m is too long for some Linux and
+    System V systems).
+</pre>
+
+<h2>Summary of changes for version 0.57</h2>
+
+<pre>
+  * The C-like formatted print functions printf, fprintf, and sprintf
+    finally work. 
+</pre>
+
+<h2>Summary of changes for version 0.56</h2>
+
+<pre>
+  * By default, octave prints a short disclaimer when it starts.
+    (You can suppress it by invoking octave with -q).
+
+  * You can keep octave from reading your ~/.octaverc and .octaverc
+    files by invoking it with -f.
+
+  * When returning two values, eig now returns [v, d] instead of
+    [lambda, v], where d is a diagonal matrix made from lambda.
+
+  * The win_texas_lotto function now produces a sorted list.
+
+  * New functions:
+
+      expm -- matrix exponential.
+      logm -- matrix logarithm.
+</pre>
+
+<h2>Summary of changes for version 0.55</h2>
+
+<pre>
+  * The following (C-style) backslash escape sequences work in quoted
+    strings (useful(?) with printf()):
+
+      \a  bell         \r  carriage return
+      \b  backspace    \t  horizontal tab
+      \f  formfeed     \v  vertical tab
+      \n  newline      \\  backslash
+
+  * Use of `...' at the end of a line will allow a statement to
+    continue over more than one line.
+
+  * The names `inf' and `nan' are now aliases for `Inf' and `NaN',
+    respectively.
+
+  * New functions:
+
+      casesen -- print a warning if the luser tries to turn off case
+                 sensitivity.
+      median  -- find median value.
+      norm    -- compute the norm of a matrix.
+      sort    -- sort columns.
+
+  * New variable, `silent_functions'.  If silent_functions == 'true',
+    the results of expressions are not printed even if they are not
+    followed by a semicolon.  The disp() and printf() functions still
+    result in output.  The default value for this variable is 'false'.
+
+  * New variable `return_last_value_computed'.  If it is 'true',
+    functions defined in script files return the last value computed
+    if a return value has not been explicitly declared.  The default
+    value for this variable is 'false'.
+</pre>
+
+<h2>Summary of changes for version 0.52</h2>
+
+<pre>
+  * Name completion works for function and variable names currently in
+    the symbol tables.  Coming soon: completion for names of functions
+    defined in script files but not yet compiled. 
+
+  * The initial value of do_fortran_indexing is now false, and the
+    initial value of prefer_column_vectors is now true.  Swap the
+    values of these variables if you want behavior that is more like
+    Matlab.
+
+  * All script files check the number of input arguments before doing
+    much real work.
+
+  * The identifiers `i' and `j' are now also names for sqrt(-1).
+    These symbols may be used for other purposes, but their original
+    definition will reappear if they are cleared.
+
+  * The symbol tables are now implemented with hash tables for faster
+    searching. 
+
+  * A small amount of help is now available for most built-in
+    operators, keywords and functions.  Coming soon: help for script
+    files.
+
+  * Without any arguments, the help command now lists all known
+    built-in operators, keywords and functions.
+
+  * Generic parse errors are now signalled by `Eh, what's up doc?',
+    which is closer to what Bugs actually says.
+
+  * The who command now only prints variable names by default.
+    Use the -fcn (or -fcns, or -functions) switch to print the names of
+    built-in or currently compiled functions.
+</pre>
+
+<h2>Summary of changes for version 0.51</h2>
+
+<pre>
+  * Major overhaul of array indexing.
+
+  * The colloc function actually works now.
+</pre>
+
+<h2>Summary of changes for version 0.50</h2>
+
+<pre>
+  * The lsode and dassl functions now return the states only,
+    instead of the time and the states, so you must keep track of
+    the corresponding times (this is easy though, because you have
+    to specify a vector of desired output times anyway).
+
+  * Solution of NLPs with NPSOL now works on the SPARC.
+
+  * New keywords `endif', `endfor', `endfunction', `endif', and
+    `endwhile', which allow for better diagnostics.  The `end' keyword
+    is still recognized.  All script files have been changed to use
+    these new keywords in place of `end'.
+
+  * It is now possible to uninstall Octave by doing a `make uninstall'
+    in the top level directory.
+
+  * The Makefiles are much closer to conforming with GNU coding standards.
+
+  * New functions:
+
+      win_texas_lotto  -- produce six unique random numbers between 1 and 50.
+      quad             -- numerical integration.
+      lu               -- LU factorization
+      qr               -- QR factorization
+      dassl            -- Solution of DAEs using DASSL.
+
+  * New files:
+
+      THANKS -- A list of people and organazations who have supported
+                the development of Octave.
+
+      NEWS   -- This file, listing recent changes.
+
+  * Help is now available at the gnuplot prompt.
+</pre>
+
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/NEWS-2.html	Tue Nov 01 01:06:10 2016 +0100
@@ -0,0 +1,1274 @@
+<!doctype html public "-//IETF//DTD HTML Strict//EN">
+<html>
+<head>
+<title> Changes in Octave version 2 </title>
+</head>
+
+<body>
+<h1> News for Octave Version 2 </h1>
+<hr>
+
+<h2>Summary of changes for version 2.0.17</h2>
+
+<p>This will probably be the last release in the 2.0.x series.  There are
+a few bug fixes, but the major change is to print a message saying
+that Octave 2.0.x cannot be compiled with gcc 3.0.x or gcc 2.96.  If
+you want to build Octave 2.0.x, you will need to use gcc 2.95.x.  If
+you want to use gcc 3.0.x or some later version, you should be using
+the Octave 2.1.35 sources or a more recent version.</p>
+
+<h2>Summary of changes for version 2.0.16</h2>
+
+<p>This is primarily a bug-fixing release.</p>
+
+<h2>Summary of changes for version 2.0.15</h2>
+
+<p>This is primarily a bug-fixing release.</p>
+
+<ul>
+<li>If you are using GNU Emacs 19.34 or earlier, you will need to add
+    the following code to your ~/.emacs file in order to use Emacs
+    Octave mode:
+<pre>
+      ;; Set up the custom library.
+      ;; taken from http://www.dina.kvl.dk/~abraham/custom/
+      (eval-and-compile
+	(condition-case ()
+	    (require 'custom)
+	  (error nil))
+	(if (and (featurep 'custom) (fboundp 'custom-declare-variable))
+	    nil ;; We've got what we needed
+	  ;; We have the old custom-library, hack around it!
+	  (defmacro defgroup (&rest args)
+	    nil)
+	  (defmacro defcustom (var value doc &rest args) 
+	    (` (defvar (, var) (, value) (, doc))))))
+</pre></li>
+</ul>
+
+<h2>Summary of changes for version 2.0.14</h2>
+
+This release fixes numerous bugs and adds the following new features:
+
+<ul>
+<li>argv is now padded with blanks instead of ASCII NUL.</li>
+
+<li>New functions:
+<dl>
+<dt><b>besselh</b></dt>
+Hankel functions of the first and second kind
+<dt><b>airy</b></dt>
+Airy functions of the first and second kind, and
+                  their derivatives
+</dl></li>
+
+<li>The Bessel functions now accept complex values for the argument
+    and any real value for the order.</li>
+
+<li>The value of LOADPATH set by the environment variable
+    OCTAVE_PATH, the -p or --path command line options, or on the
+    command line is no longer modified to include the default path.
+    Instead it is left as specified.  Its default value is now ":",
+    which tells Octave to search the default path, and the new
+    built-in variable DEFAULT_LOADPATH contains the default list of
+    directories to search.  </li>
+
+<li>The function file_in_path no longer does any special processing of
+    its PATH argument.  To search LOADPATH for files, it is now
+    generally better to use the new function file_in_loadpath.</li>
+
+<li>If fread is given a skip parameter, the skip is performed after
+    the read instead of before (for compatibility with Matlab).</li>
+
+<li>The new built-in variable `crash_dumps_octave_core' controls
+    whether Octave writes user variables to the file `octave-core'
+    when it crashes or is killed by a signal.  The default value is 1
+    (0 if you use --traditional).</li>
+
+<li>If LOADPATH contains a doubled colon, the default path is inserted
+    in its place.  This is similar to the substitution that also takes
+    place for leading or trailing colons in the LOADPATH.</li>
+
+<li>Loops of the form `for i = STRING ... endfor' are now allowed.</li>
+
+<li>It is now possible to set the iteration limit for lsode using
+    lsode_options ("step limit", N).</li>
+
+<li>New functions:
+<dl>
+<dt><b>is_complex</b></dt>
+tell whether a value is complex
+<dt><b>isnumeric</b></dt>
+tell whether a value is a numeric object
+<dt><b>isfinite</b></dt>
+find finite elements of a matrix object
+<dt><b>rehash</b></dt>
+re-initialize the cache of directories in LOADPATH
+<dt><b>graw</b></dt>
+send a string to the gnuplot subprocess
+</dl></li>
+
+<li>New functions from Kurt Hornik's Octave-ci package:
+<ul>
+<li>In finance (new directory):
+<dl>
+<dt><b>fv</b></dt>
+<dd>future value of an investment</dd>
+<dt><b>fvl</b></dt>
+<dd>future value of an initial lump sum investment</dd>
+<dt><b>irr</b></dt>
+<dd>internal rate of return of an investment</dd>
+<dt><b>nper</b></dt>
+<dd>number of payments needed for amortizing a loan</dd>
+<dt><b>npv</b></dt>
+<dd>net present value of a series of payments</dd>
+<dt><b>pmt</b></dt>
+<dd>amount of periodic payment needed to amortize a loan</dd>
+<dt><b>pv</b></dt>
+<dd>present value of an investment</dd>
+<dt><b>pvl</b></dt>
+<dd>present value of an investment that pays off at the end</dd>
+<dt><b>rate</b></dt>
+<dd>rate of return of an investment</dd>
+<dt><b>vol</b></dt>
+<dd>volatility of financial time series data</dd>
+</dl></li>
+
+<li>In linear-algebra:
+<dl>
+<dt><b>dmult</b></dt>
+<dd>rescale the rows of a matrix</dd>
+</dl></li>
+
+<li>In signal:
+<dl>
+<dt><b>arch_fit</b></dt>
+<dd>fit an ARCH regression model</dd>
+<dt><b>arch_rnd</b></dt>
+<dd>simulate an ARCH process</dd>
+<dt><b>arch_test</b></dt>
+<dd>test for conditional heteroscedascity</dd>
+<dt><b>arma_rnd</b></dt>
+<dd>simulate an ARMA process</dd>
+<dt><b>autocor</b></dt>
+<dd>compute autocorrelations</dd>
+<dt><b>autocov</b></dt>
+<dd>compute autocovariances</dd>
+<dt><b>autoreg_matrix</b></dt>
+<dd>design matrix for autoregressions</dd>
+<dt><b>bartlett</b></dt>
+<dd>coefficients of the Bartlett (triangular) window</dd>
+<dt><b>blackman</b></dt>
+<dd>coefficients of the Blackman window</dd>
+<dt><b>diffpara</b></dt>
+<dd>estimate the fractional differencing parameter</dd>
+<dt><b>durbinlevinson</b></dt>
+<dd>perform one step of the Durbin-Levinson algorithm</dd>
+<dt><b>fractdiff</b></dt>
+<dd>compute fractional differences</dd>
+<dt><b>hamming</b></dt>
+<dd>coefficients of the Hamming window</dd>
+<dt><b>hanning</b></dt>
+<dd>coefficients of the Hanning window</dd>
+<dt><b>hurst</b></dt>
+<dd>estimate the Hurst parameter</dd>
+<dt><b>periodogram</b></dt>
+<dd>compute the periodogram</dd>
+<dt><b>rectangle_lw</b></dt>
+<dd>rectangular lag window</dd>
+<dt><b>rectangle_sw</b></dt>
+<dd>rectangular spectral window</dd>
+<dt><b>sinetone</b></dt>
+<dd>compute a sine tone</dd>
+<dt><b>sinewave</b></dt>
+<dd>compute a sine wave</dd>
+<dt><b>spectral_adf</b></dt>
+<dd>spectral density estimation</dd>
+<dt><b>spectral_xdf</b></dt>
+<dd>spectral density estimation</dd>
+<dt><b>spencer</b></dt>
+<dd>apply Spencer's 15-point MA filter</dd>
+<dt><b>stft</b></dt>
+<dd>short-term Fourier transform</dd>
+<dt><b>synthesis</b></dt>
+<dd>recover a signal from its short-term Fourier transform</dd>
+<dt><b>triangle_lw</b></dt>
+<dd>triangular lag window</dd>
+<dt><b>triangle_sw</b></dt>
+<dd>triangular spectral window</dd>
+<dt><b>yulewalker</b></dt>
+<dd>fit AR model by Yule-Walker method</dd>
+</dl></li>
+
+<li>In statistics/base (new directory):
+<dl>
+<dt><b>center</b></dt>
+<dd>center by subtracting means</dd>
+<dt><b>cloglog</b></dt>
+<dd>complementary log-log function</dd>
+<dt><b>cor</b></dt>
+<dd>compute correlations</dd>
+<dt><b>cov</b></dt>
+<dd>compute covariances</dd>
+<dt><b>cut</b></dt>
+<dd>cut data into intervals</dd>
+<dt><b>iqr</b></dt>
+<dd>interquartile range</dd>
+<dt><b>kendall</b></dt>
+<dd>kendall's rank correlation tau</dd>
+<dt><b>logit</b></dt>
+<dd>logit transformation</dd>
+<dt><b>mean</b></dt>
+<dd>compute arithmetic, geometric, and harmonic mean</dd>
+<dt><b>meansq</b></dt>
+<dd>compute mean square</dd>
+<dt><b>moment</b></dt>
+<dd>compute moments</dd>
+<dt><b>ppplot</b></dt>
+<dd>perform a PP-plot (probability plot)</dd>
+<dt><b>probit</b></dt>
+<dd>probit transformation</dd>
+<dt><b>qqplot</b></dt>
+<dd>perform a QQ-plot (quantile plot)</dd>
+<dt><b>range</b></dt>
+<dd>compute range</dd>
+<dt><b>ranks</b></dt>
+<dd>compute ranks</dd>
+<dt><b>run_count</b></dt>
+<dd>count upward runs</dd>
+<dt><b>spearman</b></dt>
+<dd>spearman's rank correlation rho</dd>
+<dt><b>statistics</b></dt>
+<dd>compute basic statistics</dd>
+<dt><b>studentize</b></dt>
+<dd>subtract mean and divide by standard deviation</dd>
+<dt><b>table</b></dt>
+<dd>cross tabulation</dd>
+<dt><b>values</b></dt>
+<dd>extract unique elements</dd>
+<dt><b>var</b></dt>
+<dd>compute variance</dd>
+</dl></li>
+
+<li>In statistics/distributions (new directory):
+<dl>
+<dt><b>beta_cdf</b></dt>
+<dd>CDF of the Beta distribution</dd>
+<dt><b>beta_inv</b></dt>
+<dd>Quantile function of the Beta distribution</dd>
+<dt><b>beta_pdf</b></dt>
+<dd>PDF of the Beta distribution</dd>
+<dt><b>beta_rnd</b></dt>
+<dd>Random deviates from the Beta distribution
+</dd>
+<dt><b>binomial_cdf</b></dt>
+<dd>CDF of the binomial distribution</dd>
+<dt><b>binomial_inv</b></dt>
+<dd>Quantile function of the binomial distribution</dd>
+<dt><b>binomial_pdf</b></dt>
+<dd>PDF of the binomial distribution</dd>
+<dt><b>binomial_rnd</b></dt>
+<dd>Random deviates from the binomial distribution
+</dd>
+<dt><b>cauchy_cdf</b></dt>
+<dd>CDF of the Cauchy distribution</dd>
+<dt><b>cauchy_inv</b></dt>
+<dd>Quantile function of the Cauchy distribution</dd>
+<dt><b>cauchy_pdf</b></dt>
+<dd>PDF of the Cauchy distribution</dd>
+<dt><b>cauchy_rnd</b></dt>
+<dd>Random deviates from the Cauchy distribution
+</dd>
+<dt><b>chisquare_cdf</b></dt>
+<dd>CDF of the chi-square distribution</dd>
+<dt><b>chisquare_inv</b></dt>
+<dd>Quantile function of the chi-square distribution</dd>
+<dt><b>chisquare_pdf</b></dt>
+<dd>PDF of the chi-sqaure distribution</dd>
+<dt><b>chisquare_rnd</b></dt>
+<dd>Random deviates from the chi-square distribution
+</dd>
+<dt><b>discrete_cdf</b></dt>
+<dd>CDF of a discrete distribution</dd>
+<dt><b>discrete_inv</b></dt>
+<dd>Quantile function of a discrete distribution</dd>
+<dt><b>discrete_pdf</b></dt>
+<dd>PDF of a discrete distribution</dd>
+<dt><b>discrete_rnd</b></dt>
+<dd>Random deviates from a discrete distribution
+</dd>
+<dt><b>empirical_cdf</b></dt>
+<dd>CDF of the empirical distribution</dd>
+<dt><b>empirical_inv</b></dt>
+<dd>Quantile function of the empirical distribution</dd>
+<dt><b>empirical_pdf</b></dt>
+<dd>PDF of the empirical distribution</dd>
+<dt><b>empirical_rnd</b></dt>
+<dd>Bootstrap samples from the empirical distribution
+</dd>
+<dt><b>exponential_cdf</b></dt>
+<dd>CDF of the exponential distribution</dd>
+<dt><b>exponential_inv</b></dt>
+<dd>Quantile function of the exponential distribution</dd>
+<dt><b>exponential_pdf</b></dt>
+<dd>PDF of the exponential distribution</dd>
+<dt><b>exponential_rnd</b></dt>
+<dd>Random deviates from the exponential distribution
+</dd>
+<dt><b>f_cdf</b></dt>
+<dd>CDF of the F distribution</dd>
+<dt><b>f_inv</b></dt>
+<dd>Quantile function of the F distribution</dd>
+<dt><b>f_pdf</b></dt>
+<dd>PDF of the F distribution</dd>
+<dt><b>f_rnd</b></dt>
+<dd>Random deviates from the F distribution
+</dd>
+<dt><b>gamma_cdf</b></dt>
+<dd>CDF of the Gamma distribution</dd>
+<dt><b>gamma_inv</b></dt>
+<dd>Quantile function of the Gamma distribution</dd>
+<dt><b>gamma_pdf</b></dt>
+<dd>PDF of the Gamma distribution</dd>
+<dt><b>gamma_rnd</b></dt>
+<dd>Random deviates from the Gamma distribution
+</dd>
+<dt><b>geometric_cdf</b></dt>
+<dd>CDF of the geometric distribution</dd>
+<dt><b>geometric_inv</b></dt>
+<dd>Quantile function of the geometric distribution</dd>
+<dt><b>geometric_pdf</b></dt>
+<dd>PDF of the geometric distribution</dd>
+<dt><b>geometric_rnd</b></dt>
+<dd>Random deviates from the geometric distribution
+</dd>
+<dt><b>hypergeometric_cdf</b></dt>
+<dd>CDF of the hypergeometric distribution</dd>
+<dt><b>hypergeometric_inv</b></dt>
+<dd>Random deviates from hypergeometric distribution</dd>
+<dt><b>hypergeometric_pdf</b></dt>
+<dd>PDF of the hypergeometric distribution</dd>
+<dt><b>hypergeometric_rnd</b></dt>
+<dd>Random deviates from hypergeometric distribution
+</dd>
+<dt><b>kolmogorov_smirnov_cdf</b></dt>
+<dd>CDF of the Kolmogorov-Smirnov distribution
+</dd>
+<dt><b>laplace_cdf</b></dt>
+<dd>CDF of the Laplace distribution</dd>
+<dt><b>laplace_inv</b></dt>
+<dd>Quantile function of the Laplace distribution</dd>
+<dt><b>laplace_pdf</b></dt>
+<dd>PDF of the Laplace distribution</dd>
+<dt><b>laplace_rnd</b></dt>
+<dd>Random deviates from the Laplace distribution
+</dd>
+<dt><b>logistic_cdf</b></dt>
+<dd>CDF of the logistic distribution</dd>
+<dt><b>logistic_inv</b></dt>
+<dd>Quantile function of the logistic distribution</dd>
+<dt><b>logistic_pdf</b></dt>
+<dd>PDF of the logistic distribution</dd>
+<dt><b>logistic_rnd</b></dt>
+<dd>Random deviates from the logistic distribution
+</dd>
+<dt><b>lognormal_cdf</b></dt>
+<dd>CDF of the log normal distribution</dd>
+<dt><b>lognormal_inv</b></dt>
+<dd>Quantile function of the log normal distribution</dd>
+<dt><b>lognormal_pdf</b></dt>
+<dd>PDF of the log normal distribution</dd>
+<dt><b>lognormal_rnd</b></dt>
+<dd>Random deviates from the log normal distribution
+</dd>
+<dt><b>normal_cdf</b></dt>
+<dd>CDF of the normal distribution</dd>
+<dt><b>normal_inv</b></dt>
+<dd>Quantile function of the normal distribution</dd>
+<dt><b>normal_pdf</b></dt>
+<dd>PDF of the normal distribution</dd>
+<dt><b>normal_rnd</b></dt>
+<dd>Random deviates from the normal distribution
+</dd>
+<dt><b>pascal_cdf</b></dt>
+<dd>CDF of the Pascal (negative binomial) distribution</dd>
+<dt><b>pascal_inv</b></dt>
+<dd>Quantile function of the Pascal distribution</dd>
+<dt><b>pascal_pdf</b></dt>
+<dd>PDF of the Pascal (negative binomial) distribution</dd>
+<dt><b>pascal_rnd</b></dt>
+<dd>Random deviates from the Pascal distribution
+</dd>
+<dt><b>poisson_cdf</b></dt>
+<dd>CDF of the Poisson distribution</dd>
+<dt><b>poisson_inv</b></dt>
+<dd>Quantile function of the Poisson distribution</dd>
+<dt><b>poisson_pdf</b></dt>
+<dd>PDF of the Poisson distribution</dd>
+<dt><b>poisson_rnd</b></dt>
+<dd>Random deviates from the Poisson distribution
+</dd>
+<dt><b>stdnormal_cdf</b></dt>
+<dd>CDF of the standard normal distribution</dd>
+<dt><b>stdnormal_inv</b></dt>
+<dd>Quantile function of standard normal distribution</dd>
+<dt><b>stdnormal_pdf</b></dt>
+<dd>PDF of the standard normal distribution</dd>
+<dt><b>stdnormal_rnd</b></dt>
+<dd>Random deviates from standard normal distribution
+</dd>
+<dt><b>t_cdf</b></dt>
+<dd>CDF of the t distribution</dd>
+<dt><b>t_inv</b></dt>
+<dd>Quantile function of the t distribution</dd>
+<dt><b>t_pdf</b></dt>
+<dd>PDF of the t distribution</dd>
+<dt><b>t_rnd</b></dt>
+<dd>Random deviates from the t distribution
+</dd>
+<dt><b>uniform_cdf</b></dt>
+<dd>CDF of the uniform distribution</dd>
+<dt><b>uniform_inv</b></dt>
+<dd>Quantile function of the uniform distribution</dd>
+<dt><b>uniform_pdf</b></dt>
+<dd>PDF of the uniform distribution</dd>
+<dt><b>uniform_rnd</b></dt>
+<dd>Random deviates from the uniform distribution
+</dd>
+<dt><b>weibull_cdf</b></dt>
+<dd>CDF of the Weibull distribution</dd>
+<dt><b>weibull_inv</b></dt>
+<dd>Quantile function of the Weibull distribution</dd>
+<dt><b>weibull_pdf</b></dt>
+<dd>PDF of the Weibull distribution</dd>
+<dt><b>weibull_rnd</b></dt>
+<dd>Random deviates from the Weibull distribution
+</dd>
+<dt><b>wiener_rnd</b></dt>
+<dd>Simulate a Wiener process</dd>
+</dl></li>
+
+<li>In statistics/models (new directory):
+<dl>
+<dt><b>logistic_regression</b></dt>
+<dd>ordinal logistic regression</dd>
+<dt><b>logistic_regression_derivatives</b></dt>
+<dd>derivates of log-likelihood
+                                         in logistic regression</dd>
+<dt><b>logistic_regression_likelihood</b></dt>
+<dd>likelihood in logistic regression</dd>
+</dl></li>
+
+<li>In statistics/tests (new directory):
+<dl>
+<dt><b>anova</b></dt>
+<dd>one-way analysis of variance</dd>
+<dt><b>bartlett_test</b></dt>
+<dd>bartlett test for homogeneity of variances</dd>
+<dt><b>chisquare_test_homogeneity</b></dt>
+<dd>chi-square test for homogeneity</dd>
+<dt><b>chisquare_test_independence</b></dt>
+<dd>chi-square test for independence</dd>
+<dt><b>cor_test</b></dt>
+<dd>test for zero correlation</dd>
+<dt><b>f_test_regression</b></dt>
+<dd>test linear hypotheses in linear
+                                     regression model</dd>
+<dt><b>hotelling_test</b></dt>
+<dd>test for mean of a multivariate normal</dd>
+<dt><b>hotelling_test_2</b></dt>
+<dd>compare means of two multivariate normals</dd>
+<dt><b>kolmogorov_smirnov_test</b></dt>
+<dd>one-sample Kolmogorov-Smirnov test</dd>
+<dt><b>kolmogorov_smirnov_test_2</b></dt>
+<dd>two-sample Kolmogorov-Smirnov test</dd>
+<dt><b>kruskal_wallis_test</b></dt>
+<dd>kruskal-Wallis test</dd>
+<dt><b>manova</b></dt>
+<dd>one-way multivariate analysis of variance</dd>
+<dt><b>mcnemar_test</b></dt>
+<dd>mcnemar's test for symmetry</dd>
+<dt><b>prop_test_2</b></dt>
+<dd>compare two proportions</dd>
+<dt><b>run_test</b></dt>
+<dd>run test for independence</dd>
+<dt><b>sign_test</b></dt>
+<dd>sign test</dd>
+<dt><b>t_test</b></dt>
+<dd>student's one-sample t test </dd>
+<dt><b>t_test_2</b></dt>
+<dd>student's two-sample t test</dd>
+<dt><b>t_test_regression</b></dt>
+<dd>test one linear hypothesis in linear
+                                     regression model</dd>
+<dt><b>u_test</b></dt>
+<dd>mann-Whitney U-test</dd>
+<dt><b>var_test</b></dt>
+<dd>f test to compare two variances</dd>
+<dt><b>welch_test</b></dt>
+<dd>welch two-sample t test</dd>
+<dt><b>wilcoxon_test</b></dt>
+<dd>wilcoxon signed-rank test</dd>
+<dt><b>z_test</b></dt>
+<dd>test for mean of a normal sample with
+                                     known variance</dd>
+<dt><b>z_test_2</b></dt>
+<dd>compare means of two normal samples with
+                                     known variances</dd>
+</dl></li>
+</ul></li>
+
+<li>The save command now accepts the option -append to save the
+    variables at the end of the file, leaving the existing contents.</li>
+
+<li>New command-line option --no-history (also available using the
+    single character option -H) inhibits saving command history.</li>
+
+<li>The mkoctfile script now accepts -DDEF options and passes them on
+    to the C and C++ compilers.</li>
+</ul
+>
+<h2>Summary of changes for version 2.0.13</h2>
+
+<p>This is a bug-fixing release.  There are no new user-visible features.</p>
+
+<h2>Summary of changes for version 2.0.12</h2>
+
+<ul>
+<li>Tilde expansion is once again performed on the directories listed
+    in the LOADPATH variable.</li>
+
+<li>gplot now supports the `axes' qualifier that is new with gnuplot
+    3.6beta.</li>
+
+<li>Timestamps on .m and .oct files are now only checked if a prompt
+    has been printed since the last timestamp check.</li>
+
+<li>Octave now prints a warning if a .m or .oct file has a time stamp
+    in the future.</li>
+
+<li>For matrices, x(:) now works no matter what the value of
+    do_fortran_indexing is.</li>
+
+<li>New keywords __FILE__ and __LINE__ expand to the name of the file
+    that is being read and the current input line number, respectively.</li>
+
+<li>The GNU Info reader is no longer distributed with Octave because
+    current releases of GNU Info now support all the features needed
+    by Octave.  If your copy of GNU Info doesn't support the
+    --index-search option, you should install a newer version of GNU
+    Info, which is distributed as part of the GNU Texinfo package.</li>
+
+<li>Running `make check' should work now before you run `make install', 
+    even if you build a copy of Octave that depends on shared versions
+    of the Octave libraries.</li>
+
+<li>Octave now uses kpathsea 3.2.</li>
+
+<li>The new built-in variable `kluge_procbuf_delay' specifies the number
+    of microseconds to delay in the parent process after forking.  By
+    default on gnu-win32 systems, it's set to 500000 (1/2 second).  On
+    other systems, the default value is 0.  Delaying for a short time
+    in the parent after forking seems to avoid problems in which
+    communicating with subprocesses via pipes would sometimes cause
+    Octave to hang.  I doubt that the delay is really the right
+    solution.  If anyone has a better idea, I'd love to hear it.</li>
+</ul>
+
+<h2>Summary of changes for version 2.0.11</h2>
+
+<ul>
+<li>There are two new built-in variables that control how global
+    variables are initialized.  If `initialize_global_variables' is
+    nonzero, global variables are initialized to the value of the
+    variable `default_global_variable_value'.  The default value of
+    `initialize_global_variables' is 0 (1 if you use --traditional)
+    and `default_global_variable_value' is undefined (the empty matrix
+    if you use --traditional).  The default settings are compatible
+    with versions of Octave before 2.0.10.</li>
+</ul>
+
+<h2>Summary of changes for version 2.0.10</h2>
+
+<ul>
+<li>The built-in variable `PWD' has been removed.  If you need to get
+    the value of the current working directory, use the pwd() function
+    instead.</li>
+<li>For compatibility with Matlab, Octave's lyap function now solves
+<pre>
+      A*X + X*A' + C = 0
+</pre>
+    instead of
+<pre>
+      A'*X + X*A + C = 0
+</pre>
+    To try to avoid confusion for people who are used to the way
+    Octave behaved in previous versions, a warning is printed the
+    first time lyap is called in a given session.  To completely
+    disable the warning, simply add
+<pre>
+      global __disable_lyap_interface_change_warning__;
+</pre>
+    to your ~/.octaverc file.  The warning will eventually disappear
+    for good in some future version of Octave.</li>
+<li>New built-in functions for computing Bessel functions:
+    besseli, besselj, besselk, and bessely.</li>
+<li>The gammai and betai functions are now implemented as built-in
+    functions rather than function files.</li>
+<li>The new built-in variable `implicit_num_to_str_ok' controls
+    whether Octave converts expressions like `[97, 98, 99, "123"]' to
+    strings.  The default value is 0 unless you use --traditional.</li>
+<li>The new built-in variable `fixed_point_format' controls whether
+    Octave uses a scaled fixed-point format for displaying matrices.
+    The default value is 0 unless you use --traditional.</li>
+<li>The function sumsq now computes sum (x .* conj (x)) for complex values.</li>
+<li>Dynamically linked functions can be cleared.</li>
+<li>If a .oct file has a time stamp more recent than the time that it
+    was loaded, it is automatically reloaded.  Reloading a .oct file
+    may cause several functions to be cleared automatically.  By
+    default, a warning is printed that lists the names of the
+    functions that will be cleared.  You can suppress the message by
+    setting the new built-in variable `warn_reload_forces_clear' to 0.</li>
+<li>Global variables are now initialized to the empty matrix, for
+    compatibility with Matlab.</li>
+<li>Explicit initialization of global variables only happens once.
+    For example, after the following statements are evaluated, g still
+    has the value 1.
+<pre>
+      global g = 1
+      global g = 2
+</pre>
+    This is useful for initializing global variables that are used to
+    maintain state information that is shared among several functions.</li>
+<li>The new built-in variable max_recursion_depth allows you to
+    prevent Octave from attempting infinite recursion.  The default
+    value is 256.</li>
+<li>Octave now uses readline version 2.1 and kpathsea 3.0.</li>
+<li>The libreadline and libkpathsea libraries are no longer installed.</li>
+<li>The libcruft, liboctave, and liboctinterp libraries are now
+    installed in $libdir/octave instead of just $libdir.</li>
+<li>It's no longer necessary to have libg++, but you do need to have
+    the GNU implementation of libstdc++.  If you are using gcc 2.7.2,
+    libstdc++ is distributed as part of libg++ 2.7.2.  For later
+    versions, libstdc++ is distributed separately.  For egcs,
+    libstdc++ is included with the compiler distribution.</li>
+</ul>
+
+<h2>Summary of changes for version 2.0.9</h2>
+
+<p>This is a bug-fixing release, but there is one new user-visible
+feature:</p>
+
+<ul>
+<li>It is now possible to specify a label for lines in the plot key
+    when using the plot function.  For example,
+<pre>
+      plot (x, y, "-*;sin(x);")
+</pre>
+    plots y vs. x using the linespoints style and sets the title of
+    the line in the key to be `sin(x)'</li>
+</ul>
+
+<h2>Summary of changes for version 2.0.8</h2>
+
+<p>This is a bug-fixing release.  There are only a few new user-visible
+features.</p>
+
+<ul>
+<li>If the argument to eig() is symmetric, Octave uses the specialized
+    Lapack subroutine for symmetric matrices for a significant
+    increase in performance.</li>
+<li>It is now possible to use the mkoctfile script to create .oct
+    files from multiple source and object files.</li>
+</ul>
+
+<h2>Summary of changes for version 2.0.7</h2>
+
+<p>This is a bug-fixing release.  There are no new user-visible features.</p>
+
+<h2>Summary of changes for version 2.0.6</h2>
+
+<p>This is primarily a bug-fixing release.  There are only a few new
+user-visilbe features.</p>
+
+<ul>
+<li>The new built-in variable default_eval_print_flag controls whether
+    Octave prints the results of commands executed by eval() that do
+    not end with semicolons.  The default is 1.</li>
+<li>The new built-in constant OCTAVE_HOME specifies the top-level
+    directory where Octave is installed.</li>
+<li>Octave no longer includes functions to work with NPSOL or QPSOL,
+    because they are not free software.</li>
+</ul>
+
+<h2>Summary of changes for version 2.0.5</h2>
+
+<ul>
+<li>A `switch' statement is now available.  See the Statements chapter
+    in the manual for details.</li>
+<li>Commands like ls, save, and cd may now also be used as formal
+    parameters for functions.</li>
+<li>More tests.</li>
+</ul>
+
+<h2>Summary of changes for version 2.0.4</h2>
+
+<ul>
+<li>It is now possible to use commands like ls, save, and cd as simple
+    variable names.  They still cannot be used as formal parameters
+    for functions, or as the names of structure variables.  Failed
+    assignments leave them undefined (you can recover the orginal
+    function definition using clear).</li>
+<li>Is is now possible to invoke commands like ls, save, and cd as
+    normal functions (for example, load ("foo", "x", "y", "z")).</li>
+</ul>
+
+<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>
+<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>
+<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.</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.</li>
+<li>size ("") is now [0, 0].</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>
+
+<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.)</li>
+<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.</li>
+<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++.</li>
+<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.</li>
+<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.</li>
+<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.
+    However, there is no way to make the new versions of the *scanf
+    functions compatible with Matlab *and* previous versions of
+    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.</li>
+<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.</li>
+<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.</li>
+<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.</li>
+<li>Indexing of character strings now works.</li>
+<li>The echo command has been implemented.</li>
+<li>The document command is now a regular function.</li>
+<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.
+
+<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.</li>
+<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'.</li>
+<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.</li>
+<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".</li>
+<li>New built-in variables `history_file', `history_size', and
+    `saving_history'.</li>
+<li>New built-in variable `string_fill_char' specifies the character
+    to fill with when creating arrays of strings.</li>
+<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.
+
+    If the new built-in variable `gnuplot_has_multiplot' is nonzero,
+    Octave assumes that your copy of gnuplot has the multiplot support
+    that is included in recent 3.6beta releases.
+
+    The initial values of these variables are determined by configure,
+    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.</li>
+<li>The new plot function `figure' allows multiple plot windows when
+    using newer versions of gnuplot with X11.</li>
+<li>Octave now notices when the plotter has exited unexpectedly.</li>
+<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.</li>
+<li>Octave now attempts to continue after floating point exceptions
+    or out-of-memory errors.</li>
+<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.</li>
+<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");
+</pre></li>
+<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.</li>
+<li>The filter() function is now a built-in function.</li>
+<li>New function randn() returns a pseudo-random number from a normal
+    distribution.  The rand() and randn() functions have separate
+    seeds and generators.</li>
+<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.</li>
+<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).</li>
+<li>Octave now uses a modified copy of the readline library from
+    version 1.14.5 of GNU bash.</li>
+<li>In prompt strings, `\H' expands to the whole host name.</li>
+<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.</li>
+<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).</li>
+<li>New command-line argument --traditional sets the following
+    preference variables for compatibility with Matlab:
+<pre>
+      PS1                           = ">> "
+      PS2                           = ""
+      beep_on_error                 = 1
+      default_save_format           = "mat-binary"
+      define_all_return_values      = 1
+      do_fortran_indexing           = 1
+      empty_list_elements_ok        = 1
+      implicit_str_to_num_ok        = 1
+      ok_to_lose_imaginary_part     = 1
+      page_screen_output            = 0
+      prefer_column_vectors         = 0
+      prefer_zero_one_indexing      = 1
+      print_empty_dimensions        = 0
+      treat_neg_dim_as_zero         = 1
+      warn_function_name_clash      = 0
+      whitespace_in_literal_matrix  = "traditional"
+</pre></li>
+<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>
+<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>
+<li>New plotting functions from Vinayak Dutt.  Ones dealing with
+    multiple plots on one page require features from gnuplot 3.6beta
+    (or later).
+<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>
+<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.
+<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.
+<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>
+<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.</li>
+<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.</li>
+<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>
+<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>
+<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.</li>
+<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>
+<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>
+<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>
+<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>
+<li>The New function octave_config_info returns a structure containing
+    information about how Octave was configured and compiled.</li>
+<li>New function getrusage returns a structure containing system
+    resource usage statistics.  The `cputime' function is now defined
+    in an M-file using getrusage.</li>
+<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.</li>
+<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.</li>
+<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
+    overridden by the the command line argument --exec-path PATH, or
+    by setting the value of EXEC_PATH in a startup script.  If the
+    EXEC_PATH begins (ends) with a colon, the directories
+    $OCTAVE_HOME/lib/octave/VERSION/exec/ARCH and $OCTAVE_HOME/bin are
+    prepended (appended) to EXEC_PATH (if you don't specify a value
+    for EXEC_PATH explicitly, these special directories are prepended
+    to your PATH).</li>
+<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).</li>
+<li>New examples directory.</li>
+<li>There is a new script, mkoctfile, that can be used to create .oct
+    files suitable for dynamic linking.</li>
+<li>Many more bug fixes.</li>
+<li>ChangeLogs are now kept in each subdirectory.</li></li>
+</ul>
+
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/NEWS-3.2.html	Tue Nov 01 01:06:10 2016 +0100
@@ -0,0 +1,398 @@
+<pre>
+Summary of important user-visible changes for version 3.2:
+---------------------------------------------------------
+
+ ** Compatibility with Matlab graphics has been improved.
+
+    The hggroup object and associated listener callback functions have
+    been added allowing the inclusion of group objects.  Data sources
+    have been added to these group objects such that
+
+           x = 0:0.1:10;
+           y = sin (x);
+           plot (x, y, "ydatasource", "y");
+           for i = 1 : 100
+             pause(0.1)
+             y = sin (x + 0.1 * i);
+             refreshdata();
+           endfor
+
+    works as expected.  This capability has be used to introduce
+    stem-series, bar-series, etc., objects for better Matlab
+    compatibility.
+
+ ** New graphics functions:
+
+      addlistener         ezcontour   gcbo         refresh  
+      addproperty         ezcontourf  ginput       refreshdata
+      allchild            ezmesh      gtext        specular
+      available_backends  ezmeshc     intwarning   surfl
+      backend             ezplot      ishghandle   trisurf
+      cla                 ezplot3     isocolors    waitforbuttonpress
+      clabel              ezpolar     isonormals  
+      comet               ezsurf      isosurface  
+      dellistener         findall     linkprop   
+      diffuse             gcbf        plotmatrix
+
+ ** New experimental OpenGL/FLTK based plotting system.
+
+    An experimental plotting system based on OpenGL and the FLTK
+    toolkit is now part of Octave.  This backend is disabled by
+    default.  You can switch to using it with the command
+
+        backend ("fltk")
+
+    for all future figures or for a particular figure with the command
+
+        backend (h, "fltk")
+
+    where "h" is a valid figure handle.  Please note that this backend
+    does not yet support text objects.  Obviously, this is a necessary
+    feature before it can be considered usable.  We are looking for
+    volunteers to help implement this missing feature.
+
+ ** Functions providing direct access to gnuplot have been removed.
+
+    The functions __gnuplot_plot__, __gnuplot_set__, __gnuplot_raw__,
+     __gnuplot_show__, __gnuplot_replot__, __gnuplot_splot__,
+     __gnuplot_save_data__ and __gnuplot_send_inline_data__ have been
+     removed from Octave.  These function were incompatible with the
+     high level graphics handle code.
+
+ ** The Control, Finance and Quaternion functions have been removed.
+
+    These functions are now available as separate packages from
+
+      http://octave.sourceforge.net/packages.html
+
+    and can be reinstalled using the Octave package manager (see
+    the pkg function).
+
+ ** Specific sparse matrix functions removed.
+
+    The following functions, which handled only sparse matrices have
+    been removed.  Instead of calling these functions directly, you
+    should use the corresponding function without the "sp" prefix.
+
+      spatan2     spcumsum  spkron   spprod
+      spchol      spdet     splchol  spqr
+      spchol2inv  spdiag    splu     spsum
+      spcholinv   spfind    spmax    spsumsqk
+      spcumprod   spinv     spmin
+
+ ** Improvements to the debugger.
+
+    The interactive debugging features have been improved.  Stopping
+    on statements with dbstop should work correctly now.  Stepping
+    into and over functions, and stepping one statement at a time
+    (with dbstep) now works.  Moving up and down the call stack with
+    dbup and dbdown now works.  The dbstack function is now available
+    to print the current function call stack.  The new dbquit function
+    is available to exit the debugging mode.
+
+ ** Improved traceback error messages.
+
+    Traceback error messages are much more concise and easier to
+    understand.  They now display information about the function call
+    stack instead of the stack of all statements that were active at
+    the point of the error.
+
+ ** Object Oriented Programming.
+
+    Octave now includes OOP features and the user can create their own
+    class objects and overloaded functions and operators.  For
+    example, all methods of a class called "myclass" will be found in
+    a directory "@myclass" on the users path.  The class specific
+    versions of functions and operators take precedence over the
+    generic versions of these functions.
+
+    New functions related to OOP include
+
+      class  inferiorto  isobject  loadobj  methods  superiorto
+
+    See the Octave manual for more details.
+
+ ** Parsing of Command-style Functions.
+
+    Octave now parses command-style functions without needing to first
+    declare them with "mark_as_command".  The rules for recognizing a
+    command-style function calls are
+
+      * A command must appear as the first word in a statement,
+        followed by a space.
+
+      * The first character after the space must not be '=' or '('
+
+      * The next token after the space must not look like a binary
+        operator.
+
+    These rules should be mostly compatible with the way Matlab parses
+    command-style function calls and allow users to define commands in
+    .m files without having to mark them as commands.
+
+    Note that previous versions of Octave allowed expressions like
+
+      x = load -text foo.dat
+
+    but an expression like this will now generate a parse error.  In
+    order to assign the value returned by a function to a variable,
+    you must use the normal function call syntax:
+
+      x = load ("-text", "foo.dat");
+
+ ** Block comments.
+
+    Commented code can be between matching "#{" and "#}" or "%{" and
+    "%}" markers, even if the commented code spans several line.  This
+    allows blocks code to be commented, without needing to comment
+    each line.  For example,
+
+    function [s, t] = func (x, y)
+      s = 2 * x;
+    #{
+      s *= y;
+      t = y + x;
+    #}
+    endfunction
+
+    the lines "s *= y;" and "t = y + x" will not be executed.
+
+ ** Special treatment in the parser of expressions like "a' * b".
+
+    In these cases the transpose is no longer explicitly formed and
+    BLAS libraries are called with the transpose flagged,
+    significantly improving performance for these kinds of
+    operations.
+
+ ** Single Precision data type.
+
+    Octave now includes a single precision data type.  Single
+    precision variables can be created with the "single" command, or
+    from functions like ones, eye, etc.  For example,
+
+      single (1)
+      ones (2, 2, "single")
+      zeros (2, 2, "single")
+      eye (2, 2, "single")
+      Inf (2, 2, "single")
+      NaN (2, 2, "single")
+      NA (2, 2, "single")
+
+    all create single precision variables.  For compatibility with
+    Matlab, mixed double/single precision operators and functions
+    return single precision types.
+
+    As a consequence of this addition to Octave the internal
+    representation of the double precision NA value has changed, and
+    so users that make use of data generated by Octave with R or
+    visa-versa are warned that compatibility might not be assured.
+
+ ** Improved array indexing.
+
+    The underlying code used for indexing of arrays has been
+    completely rewritten and indexing is now significantly faster.
+
+ ** Improved memory management.
+
+    Octave will now attempt to share data in some cases where previously
+    a copy would be made, such as certain array slicing operations or
+    conversions between cells, structs and cs-lists.  This usually reduces
+    both time and memory consumption.
+    Also, Octave will now attempt to detect and optimize usage of a vector 
+    as a stack, when elements are being repeatedly inserted at/removed from 
+    the end of the vector.
+
+ ** Improved performance for reduction operations.
+
+    The performance of the sum, prod, sumsq, cumsum, cumprod, any, all,
+    max and min functions has been significantly improved.
+
+ ** Sorting and searching.
+    
+    The performance of sort has been improved, especially when sorting
+    indices are requested. An efficient built-in issorted implementation
+    was added. sortrows now uses a more efficient algorithm, especially
+    in the homegeneous case. lookup is now a built-in function performing
+    a binary search, optimized for long runs of close elements. Lookup
+    also works with cell arrays of strings.
+
+ ** Range arithmetics
+
+    For some operations on ranges, Octave will attempt to keep the result as a
+    range.  These include negation, adding a scalar, subtracting a scalar, and
+    multiplying by a scalar. Ranges with zero increment are allowed and can be
+    constructed using the built-in function `ones'.
+
+ ** Various performance improvements.
+
+    Performance of a number of other built-in operations and functions was
+    improved, including:
+
+    * logical operations
+    * comparison operators
+    * element-wise power
+    * accumarray
+    * cellfun
+    * isnan
+    * isinf
+    * isfinite
+    * nchoosek
+    * repmat
+    * strcmp
+
+ ** 64-bit integer arithmetic.
+
+    Arithmetic with 64-bit integers (int64 and uint64 types) is fully
+    supported, with saturation semantics like the other integer types.
+    Performance of most integer arithmetic operations has been
+    improved by using integer arithmetic directly.  Previously, Octave
+    performed integer math with saturation semantics by converting the
+    operands to double precision, performing the operation, and then
+    converting the result back to an integer value, truncating if
+    necessary.
+
+ ** Diagonal and permutation matrices.
+
+    The interpreter can now treat diagonal and permutation matrices as
+    special objects that store only the non-zero elements, rather than
+    general full matrices.  Therefore, it is now possible to construct
+    and use these matrices in linear algebra without suffering a
+    performance penalty due to storing large numbers of zero elements.
+
+ ** Improvements to fsolve.
+
+    The fsolve function now accepts an option structure argument (see
+    also the optimset function).  The INFO values returned from fsolve
+    have changed to be compatible with Matlab's fsolve function.
+    Additionally, fsolve is now able to solve overdetermined systems,
+    complex-differentiable complex systems, systems with a sparse
+    jacobian and can work in single precision if given single precision
+    inputs.  It can also be called recursively.
+
+ ** Improvements to the norm function.
+
+    The norm function is now able to compute row or column norms of a
+    matrix in a single call, as well as general matrix p-norms.
+
+ ** New functions for computing some eigenvalues or singular values.
+
+    The eigs and svds functions have been included in Octave.  These
+    functions require the ARPACK library (now distributed under a
+    GPL-compatible license).
+
+ ** New QR and Cholesky factorization updating functions.
+
+      choldelete  cholshift   qrdelete  qrshift
+      cholinsert  cholupdate  qrinsert  qrupdate
+
+ ** New quadrature functions.
+
+      dblquad  quadgk  quadv  triplequad
+
+ ** New functions for reading and writing images.
+
+    The imwrite and imread functions have been included in Octave.
+    These functions require the GraphicsMagick library.  The new
+    function imfinfo provides information about an image file (size,
+    type, colors, etc.)
+
+ ** The input_event_hook function has been replaced by the pair of
+    functions add_input_event_hook and remove_input_event_hook so that
+    more than one hook function may be installed at a time.
+
+ ** Other miscellaneous new functions.
+
+      addtodate          hypot                       reallog
+      bicgstab           idivide                     realpow
+      cellslices         info                        realsqrt
+      cgs                interp1q                    rectint
+      command_line_path  isdebugmode                 regexptranslate
+      contrast           isfloat                     restoredefaultpath
+      convn              isstrprop                   roundb
+      cummin             log1p                       rundemos
+      cummax             lsqnonneg                   runlength
+      datetick           matlabroot                  saveobj
+      display            namelengthmax               spaugment
+      expm1              nargoutchk                  strchr
+      filemarker         pathdef                     strvcat
+      fstat              perl                        subspace
+      full               prctile                     symvar
+      fzero              quantile                    treelayout
+      genvarname         re_read_readline_init_file  validatestring
+      histc
+
+ ** Changes to strcat.
+
+    The strcat function is now compatible with Matlab's strcat
+    function, which removes trailing whitespace when concatenating
+    character strings.  For example
+
+      strcat ('foo ', 'bar')
+      ==> 'foobar'
+
+    The new function cstrcat provides the previous behavior of
+    Octave's strcat.
+
+ ** Improvements to the help functions.
+
+    The help system has been mostly re-implemented in .m files to make
+    it easier to modify.  Performance of the lookfor function has been
+    greatly improved by caching the help text from all functions that
+    are distributed with Octave.  The pkg function has been modified
+    to generate cache files for external packages when they are
+    installed.
+
+ ** Deprecated functions.
+
+    The following functions were deprecated in Octave 3.0 and will be
+    removed in Octave 3.4 (or whatever version is the second major
+    release after 3.0):
+                                           
+      beta_cdf         geometric_pdf        pascal_pdf      
+      beta_inv         geometric_rnd        pascal_rnd      
+      beta_pdf         hypergeometric_cdf   poisson_cdf     
+      beta_rnd         hypergeometric_inv   poisson_inv     
+      binomial_cdf     hypergeometric_pdf   poisson_pdf     
+      binomial_inv     hypergeometric_rnd   poisson_rnd     
+      binomial_pdf     intersection         polyinteg       
+      binomial_rnd     is_bool              setstr          
+      chisquare_cdf    is_complex           struct_contains 
+      chisquare_inv    is_list              struct_elements 
+      chisquare_pdf    is_matrix            t_cdf           
+      chisquare_rnd    is_scalar            t_inv           
+      clearplot        is_square            t_pdf           
+      clg              is_stream            t_rnd           
+      com2str          is_struct            uniform_cdf     
+      exponential_cdf  is_symmetric         uniform_inv     
+      exponential_inv  is_vector            uniform_pdf     
+      exponential_pdf  isstr                uniform_rnd     
+      exponential_rnd  lognormal_cdf        weibcdf         
+      f_cdf            lognormal_inv        weibinv         
+      f_inv            lognormal_pdf        weibpdf         
+      f_pdf            lognormal_rnd        weibrnd         
+      f_rnd            meshdom              weibull_cdf     
+      gamma_cdf        normal_cdf           weibull_inv     
+      gamma_inv        normal_inv           weibull_pdf     
+      gamma_pdf        normal_pdf           weibull_rnd     
+      gamma_rnd        normal_rnd           wiener_rnd      
+      geometric_cdf    pascal_cdf
+      geometric_inv    pascal_inv
+
+    The following functions are now deprecated in Octave 3.2 and will
+    be removed in Octave 3.6 (or whatever version is the second major
+    release after 3.2):
+
+      create_set          spcholinv  spmax
+      dmult               spcumprod  spmin
+      iscommand           spcumsum   spprod
+      israwcommand        spdet      spqr
+      lchol               spdiag     spsum
+      loadimage           spfind     spsumsq
+      mark_as_command     spinv      str2mat
+      mark_as_rawcommand  spkron     unmark_command
+      spatan2             splchol    unmark_rawcommand
+      spchol              split
+      spchol2inv          splu
+
+See NEWS.3 for old news.
+</pre>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/NEWS-3.4.html	Tue Nov 01 01:06:10 2016 +0100
@@ -0,0 +1,485 @@
+<pre>
+Summary of important user-visible changes for version 3.4.3:
+-----------------------------------------------------------
+
+ ** Octave 3.4.3 is a bug fixing release.
+
+Summary of important user-visible changes for version 3.4.2:
+-----------------------------------------------------------
+
+ ** Octave 3.2.4 fixes some minor installation problems that affected
+    version 3.4.1.
+
+Summary of important user-visible changes for version 3.4.1:
+-----------------------------------------------------------
+
+ ** Octave 3.4.1 is primarily a bug fixing release.
+
+ ** IMPORTANT note about binary incompatibility in this release:
+
+    Binary compatibility for all 3.4.x releases was originally planned,
+    but this is impossible for the 3.4.1 release due to a bug in the way
+    shared libraries were built in Octave 3.4.0.  Because of this bug,
+    .oct files built for Octave 3.4.0 must be recompiled before they
+    will work with Octave 3.4.1.
+
+    Given that there would be binary incompatibilities with shared
+    libraries going from Octave 3.4.0 to 3.4.1, the following
+    incompatible changes were also made in this release:
+
+      * The Perl Compatible Regular Expression (PCRE) library is now
+        required to build Octave.
+
+      * Octave's libraries and .oct files are now installed in
+        subdirectories of $libdir instead of $libexecdir.
+
+    Any future Octave 3.4.x release versions should remain binary
+    compatible with Octave 3.4.1 as proper library versioning is now
+    being used as recommended by the libtool manual.
+
+ ** The following functions have been deprecated in Octave 3.4.1 and will
+    be removed from Octave 3.8 (or whatever version is the second major
+    release after 3.4):
+
+      cquad  is_duplicate_entry  perror  strerror
+
+ ** The following functions are new in 3.4.1:
+
+      colstyle  gmres  iscolumn  isrow  mgorth  nproc  rectangle
+
+ ** The get_forge_pkg function is now private.
+
+ ** The rectangle_lw, rectangle_sw, triangle_lw, and triangle_sw
+    functions are now private.
+
+ ** The logistic_regression_derivatives and logistic_regression_likelihood
+    functions are now private.
+
+ ** ChangeLog files in the Octave sources are no longer maintained
+    by hand.  Instead, there is a single ChangeLog file generated from
+    the Mercurial version control commit messages.  Older ChangeLog
+    information can be found in the etc/OLD-ChangeLogs directory in the
+    source distribution.
+
+Summary of important user-visible changes for version 3.4:
+---------------------------------------------------------
+
+ ** BLAS and LAPACK libraries are now required to build Octave.  The
+    subset of the reference BLAS and LAPACK libraries has been removed
+    from the Octave sources.
+
+ ** The `lookup' function was extended to be more useful for
+    general-purpose binary searching.  Using this improvement, the
+    ismember function was rewritten for significantly better
+    performance.
+
+ ** Real, integer and logical matrices, when used in indexing, will now
+    cache the internal index_vector value (zero-based indices) when
+    successfully used as indices, eliminating the conversion penalty for
+    subsequent indexing by the same matrix.  In particular, this means it
+    is no longer needed to avoid repeated indexing by logical arrays
+    using find for performance reasons.
+
+ ** Logical matrices are now treated more efficiently when used as
+    indices.  Octave will keep the index as a logical mask unless the
+    ratio of true elements is small enough, using a specialized
+    code.  Previously, all logical matrices were always first converted
+    to index vectors.  This results in savings in both memory and
+    computing time.
+
+ ** The `sub2ind' and `ind2sub' functions were reimplemented as compiled
+    functions for better performance.  These functions are now faster,
+    can deliver more economized results for ranges, and can reuse the
+    index cache mechanism described in previous paragraph.
+
+ ** The built-in function equivalents to associative operators (`plus',
+    `times', `mtimes', `and', and `or') have been extended to accept
+    multiple arguments.  This is especially useful for summing
+    (multiplying, etc.) lists of objects (of possibly distinct types):
+   
+      matrix_sum = plus (matrix_list{:});
+
+ ** An FTP object type based on libcurl has been implemented.  These
+    objects allow ftp connections, downloads and uploads to be
+    managed.  For example,
+
+      fp = ftp ("ftp.octave.org);
+      cd (fp, "gnu/octave");
+      mget (fp, "octave-3.2.3.tar.bz2");
+      close (fp);
+
+ ** The default behavior of `assert (observed, expected)' has been
+    relaxed to employ less strict checking that does not require the
+    internals of the values to match.  This avoids previously valid
+    tests from breaking due to new internal classes introduced in future
+    Octave versions.
+
+    For instance, all of these assertions were true in Octave 3.0.x
+    but false in 3.2.x due to new optimizations and improvements:
+
+      assert (2*linspace (1, 5, 5), 2*(1:5))
+      assert (zeros (0, 0), [])
+      assert (2*ones (1, 5), (2) (ones (1,5)))
+
+ ** The behavior of library functions `ismatrix', `issquare', and
+    `issymmetric' has been changed for better consistency.
+    
+    * The `ismatrix' function now returns true for all numeric,
+      logical and character 2-D or N-D matrices.  Previously, `ismatrix' 
+      returned false if the first or second dimension was zero.
+      Hence, `ismatrix ([])' was false, 
+      while `ismatrix (zeros (1,2,0))' was true.
+
+    * The `issquare' function now returns a logical scalar, and is
+      equivalent to the expression
+
+        ismatrix (x) && ndims (x) == 2 && rows (x) == columns (x)
+
+      The dimension is no longer returned.  As a result, `issquare ([])'
+      now yields true.
+    
+    * The `issymmetric' function now checks for symmetry instead of
+      Hermitianness.  For the latter, ishermitian was created.  Also,
+      logical scalar is returned rather than the dimension, so
+      `issymmetric ([])' is now true.
+      
+ ** Function handles are now aware of overloaded functions.  If a
+    function is overloaded, the handle determines at the time of its
+    reference which function to call.  A non-overloaded version does not
+    need to exist.
+
+ ** Overloading functions for built-in classes (double, int8, cell,
+    etc.) is now compatible with Matlab.
+
+ ** Function handles can now be compared with the == and != operators,
+    as well as the `isequal' function.
+
+ ** Performance of concatenation (using []) and the functions `cat',
+    `horzcat', and `vertcat' has been improved for multidimensional
+    arrays.
+
+ ** The operation-assignment operators +=, -=, *= and /= now behave more
+    efficiently in certain cases.  For instance, if M is a matrix and S a
+    scalar, then the statement
+
+      M += S;
+ 
+    will operate on M's data in-place if it is not shared by another
+    variable, usually increasing both time and memory efficiency.
+    
+    Only selected common combinations are affected, namely:
+    
+      matrix += matrix
+      matrix -= matrix
+      matrix .*= matrix
+      matrix ./= matrix
+
+      matrix += scalar
+      matrix -= scalar
+      matrix *= scalar
+      matrix /= scalar
+
+      logical matrix |= logical matrix
+      logical matrix &= logical matrix
+
+    where matrix and scalar belong to the same class.  The left-hand
+    side must be a simple variable reference.
+
+    Moreover, when unary operators occur in expressions, Octave will
+    also try to do the operation in-place if it's argument is a
+    temporary expresssion.
+
+ ** The effect of comparison operators (<, >, <=, and >=) applied to
+    complex numbers has changed to be consistent with the strict
+    ordering defined by the `max', `min', and `sort' functions.  More
+    specifically, complex numbers are compared by lexicographical
+    comparison of the pairs `[abs(z), arg(z)]'.  Previously, only real
+    parts were compared; this can be trivially achieved by wrapping the
+    operands in real().
+
+ ** The automatic simplification of complex computation results has
+    changed.  Octave will now simplify any complex number with a zero
+    imaginary part or any complex matrix with all elements having zero
+    imaginary part to a real value.  Previously, this was done only for
+    positive zeros.  Note that the behavior of the complex function is
+    unchanged and it still produces a complex value even if the
+    imaginary part is zero.
+
+ ** As a side effect of code refactoring in liboctave, the binary
+    logical operations are now more easily amenable to compiler
+    optimizations and are thus significantly faster.
+
+ ** Octave now allows user-defined `subsasgn' methods to optimize out
+    redundant copies.  For more information, see the manual.
+
+ ** More efficient matrix division handling.  Octave is now able to
+    handle the expressions
+    
+       M' \ V
+       M.' \ V
+       V / M 
+
+    (M is a matrix and V is a vector) more efficiently in certain cases.
+    In particular, if M is triangular, all three expressions will be
+    handled by a single call to xTRTRS (from LAPACK), with appropriate
+    flags.  Previously, all three expressions required a physical
+    transpose of M.
+
+ ** More efficient handling of certain mixed real-complex matrix
+    operations.  For instance, if RM is a real matrix and CM a complex
+    matrix,
+    
+      RM * CM
+
+    can now be evaluated either as
+
+      complex (RM * real (CM), RM * imag (CM))
+
+    or as
+
+      complex (RM) * CM,
+
+    depending on the dimensions.  The first form requires more
+    temporaries and copying, but halves the FLOP count, which normally
+    brings better performance if RM has enough rows.  Previously, the
+    second form was always used.
+
+    Matrix division is similarly affected.
+
+ ** More efficient handling of triangular matrix factors returned from
+    factorizations.  The functions for computing QR, LU and Cholesky
+    factorizations will now automatically return the triangular matrix
+    factors with proper internal matrix_type set, so that it won't need
+    to be computed when the matrix is used for division.
+
+ ** The built-in `sum' function now handles the non-native summation
+    (i.e., double precision sum of single or integer inputs) more
+    efficiently, avoiding a temporary conversion of the whole input
+    array to doubles.  Further, `sum' can now accept an extra option
+    argument, using a compensated summation algorithm rather than a
+    straightforward sum, which significantly improves precision if lots
+    of cancellation occurs in the summation.
+
+ ** The built-in `bsxfun' function now uses optimized code for certain
+    cases where built-in operator handles are passed in.  Namely, the
+    optimizations concern the operators `plus', `minus', `times',
+    `ldivide', `rdivide', `power', `and', `or' (for logical arrays),
+    the relational operators `eq', `ne', `lt', `le', `gt', `ge', and the
+    functions `min' and `max'.  Optimizations only apply when both
+    operands are of the same built-in class.  Mixed real/complex and
+    single/double operations will first convert both operands to a
+    common type.
+
+ ** The `strfind' and `strrep' functions now have compiled
+    implementations, facilitating significantly more efficient searching
+    and replacing in strings, especially with longer patterns.  The code
+    of `strcat' has been vectorized and is now much more efficient when
+    many strings are concatenated.  The `strcmpi' and `strncmpi'
+    functions are now built-in functions, providing better performance.
+ 
+ ** Matlab-style ignoring input and output function arguments using
+    tilde (~) is now supported.  Ignored output arguments may be
+    detected from a function using the built-in function `isargout'.
+    For more details, consult the manual. 
+
+ ** The list datatype, deprecated since the introduction of cells, has
+    been removed.
+
+ ** The accumarray function has been optimized and is now significantly
+    faster in certain important cases.
+
+ ** The behavior of isreal and isnumeric functions was changed to be more
+    Matlab-compatible.
+
+ ** The integer math & conversion warnings (Octave:int-convert-nan,
+    Octave:int-convert-non-int-val, Octave:int-convert-overflow,
+    Octave:int-math-overflow) have been removed.
+
+ ** rem and mod are now built-in functions.  They also handle integer
+    types efficiently using integer arithmetic.
+
+ ** Sparse indexing and indexed assignment has been mostly rewritten.
+    Since Octave uses compressed column storage for sparse matrices,
+    major attention is devoted to operations manipulating whole columns.
+    Such operations are now significantly faster, as well as some other
+    important cases.
+
+    Further, it is now possible to pre-allocate a sparse matrix and
+    subsequently fill it by assignments, provided they meet certain
+    conditions.  For more information, consult the `spalloc' function,
+    which is no longer a mere dummy.  Consequently, nzmax and nnz are no
+    longer always equal in Octave.  Octave may also produce a matrix
+    with nnz < nzmax as a result of other operations, so you should
+    consistently use nnz unless you really want to use nzmax (i.e. the
+    space allocated for nonzero elements).
+
+    Sparse concatenation is also affected, and concatenating sparse 
+    matrices, especially larger collections, is now significantly more 
+    efficient.  This applies to both the [] operator and the 
+    cat/vertcat/horzcat functions.
+
+ ** It is now possible to optionally employ the xGESDD LAPACK drivers
+    for computing the singular value decomposition using svd(), instead
+    of the default xGESVD, using the configuration pseudo-variable
+    svd_driver.  The xGESDD driver can be up to 6x times faster when
+    singular vectors are requested, but is reported to be somewhat less
+    robust on highly ill-conditioned matrices.
+
+ ** Configuration pseudo-variables, such as page_screen_output or 
+    confirm_recursive_rmdir (or the above mentioned svd_driver), now 
+    accept a "local" option as second argument, requesting the change 
+    to be undone when the current function returns:
+        
+    function [status, msg] = rm_rf (dir)
+      confirm_recursive_rmdir (false, "local");
+      [status, msg] = rmdir (dir, "s");
+      ...
+    endfunction
+    
+    Upon return, confirm_recursive_rmdir will be restored to the value 
+    it had on entry to the function, even if there were subsequent 
+    changes to the variable in function rm_rf or any of the functions
+    it calls.
+
+ ** pkg now accepts a -forge option for downloading and installing
+    packages from Octave Forge automatically.  For example, 
+    
+      pkg install -forge general
+    
+    will automatically download the latest release of the general
+    package and attempt to install it. No automatic resolving of
+    dependencies is provided.  Further,
+
+      pkg list -forge
+    
+    can be used to list all available packages.
+
+  ** The internal data representation of structs has been completely
+     rewritten to make certain optimizations feasible.  The field data
+     can now be shared between structs with equal keys but different
+     dimensions or values, making operations that preserve the fields
+     faster.  Economized storage is now used for scalar structs (just
+     like most other scalars), making their usage more
+     memory-efficient.  Certain array-like operations on structs
+     (concatenation, uniform cellfun, num2cell) have gained a
+     significant speed-up.  Additionally, the octave_scalar_map class
+     now provides a simpler interface to work with scalar structs within
+     a C++ DLD function.
+
+  ** Two new formats are available for displaying numbers:
+
+       format short eng
+       format long eng
+
+     Both display numbers in engineering notation, i.e., mantissa +
+     exponent where the exponent is a multiple of 3.
+
+  ** The following functions are new in Octave 3.4:
+
+       accumdim    erfcx        nfields      pqpnonneg  uigetdir 
+       bitpack     fileread     nth_element  quadcc     uigetfile  
+       bitunpack   fminbnd      onCleanup    randi      uiputfile    
+       blkmm       fskipl       pbaspect     repelems   uimenu  
+       cbrt        ifelse       pie3         reset      whitebg
+       curl        ishermitian  powerset     rsf2csf    
+       chop        isindex      ppder        saveas          
+       daspect     luupdate     ppint        strread          
+       divergence  merge        ppjumps      textread 
+
+  ** Using the image function to view images with external programs such
+     as display, xv, and xloadimage is no longer supported.  The
+     image_viewer function has also been removed.
+
+  ** The behavior of struct assignments to non-struct values has been
+     changed.  Previously, it was possible to overwrite an arbitrary
+     value:
+      
+        a = 1;
+        a.x = 2;
+
+     This is no longer possible unless a is an empty matrix or cell
+     array.
+  
+  ** The dlmread function has been extended to allow specifying a custom
+     value for empty fields.
+
+  ** The dlmread and dlmwrite functions have been modified to accept
+     file IDs (as returned by fopen) in addition to file names.
+
+  ** Octave can now optimize away the interpreter overhead of an
+     anonymous function handle, if the function simply calls another
+     function or handle with some of its parameters bound to certain
+     values.  Example:
+     
+       f = @(x) sum (x, 1);
+
+     When f is called, the call is forwarded to @sum with the constant 1
+     appended, and the anonymous function call does not occur on the
+     call stack.
+
+ ** Deprecated functions.
+
+    The following functions were deprecated in Octave 3.0 and have been
+    removed from Octave 3.4.
+                                           
+      beta_cdf         geometric_pdf        pascal_pdf      
+      beta_inv         geometric_rnd        pascal_rnd      
+      beta_pdf         hypergeometric_cdf   poisson_cdf     
+      beta_rnd         hypergeometric_inv   poisson_inv     
+      binomial_cdf     hypergeometric_pdf   poisson_pdf     
+      binomial_inv     hypergeometric_rnd   poisson_rnd     
+      binomial_pdf     intersection         polyinteg       
+      binomial_rnd     is_bool              setstr          
+      chisquare_cdf    is_complex           struct_contains 
+      chisquare_inv    is_list              struct_elements 
+      chisquare_pdf    is_matrix            t_cdf           
+      chisquare_rnd    is_scalar            t_inv           
+      clearplot        is_square            t_pdf           
+      clg              is_stream            t_rnd           
+      com2str          is_struct            uniform_cdf     
+      exponential_cdf  is_symmetric         uniform_inv     
+      exponential_inv  is_vector            uniform_pdf     
+      exponential_pdf  isstr                uniform_rnd     
+      exponential_rnd  lognormal_cdf        weibcdf         
+      f_cdf            lognormal_inv        weibinv         
+      f_inv            lognormal_pdf        weibpdf         
+      f_pdf            lognormal_rnd        weibrnd         
+      f_rnd            meshdom              weibull_cdf     
+      gamma_cdf        normal_cdf           weibull_inv     
+      gamma_inv        normal_inv           weibull_pdf     
+      gamma_pdf        normal_pdf           weibull_rnd     
+      gamma_rnd        normal_rnd           wiener_rnd      
+      geometric_cdf    pascal_cdf
+      geometric_inv    pascal_inv
+
+    The following functions were deprecated in Octave 3.2 and will
+    be removed from Octave 3.6 (or whatever version is the second major
+    release after 3.2):
+
+      create_set          spcholinv    splu   
+      dmult               spcumprod    spmax
+      iscommand           spcumsum     spmin
+      israwcommand        spdet        spprod
+      lchol               spdiag       spqr
+      loadimage           spfind       spsum
+      mark_as_command     sphcat       spsumsq
+      mark_as_rawcommand  spinv        spvcat 
+      spatan2             spkron       str2mat
+      spchol              splchol      unmark_command
+      spchol2inv          split        unmark_rawcommand
+
+    The following functions have been deprecated in Octave 3.4 and will
+    be removed from Octave 3.8 (or whatever version is the second major
+    release after 3.4):
+
+      autocor  cellidx   gammai     krylovb    values
+      autocov  dispatch  glpkmex    replot
+      betai    fstat     is_global  saveimage
+
+  * For compatibility with Matlab, mu2lin (x) is now equivalent to
+    mu2lin (x, 0).
+
+  * The ARPACK library is now distributed with Octave so it no longer
+    needs to be available as an external dependency when building
+    Octave.
+</pre>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/NEWS-3.6.html	Tue Nov 01 01:06:10 2016 +0100
@@ -0,0 +1,213 @@
+<pre>
+Summary of important user-visible changes for version 3.6:
+---------------------------------------------------------
+
+ ** The PCRE library is now required to build Octave.  If a pre-compiled
+    package does not exist for your system, you can find PCRE sources
+    at http://www.pcre.org
+
+ ** The ARPACK library is no longer distributed with Octave.
+    If you need the eigs or svds functions you must provide an
+    external ARPACK through a package manager or by compiling it
+    yourself.  If a pre-compiled package does not exist for your system,
+    you can find the current ARPACK sources at
+    http://forge.scilab.org/index.php/p/arpack-ng
+
+ ** Many of Octave's binary operators (.*, .^, +, -, ...) now perform
+    automatic broadcasting for array operations which allows you to use
+    operator notation instead of calling bsxfun or expanding arrays (and
+    unnecessarily wasting memory) with repmat or similar idioms.  For
+    example, to scale the columns of a matrix by the elements of a row
+    vector, you may now write
+
+      rv .* M
+
+    In this expression, the number of elements of rv must match the
+    number of columns of M.  The following operators are affected:
+
+      plus      +  .+
+      minus     -  .-
+      times     .*
+      rdivide   ./
+      ldivide   .\
+      power     .^  .**
+      lt        <
+      le        <=
+      eq        ==
+      gt        >
+      ge        >=
+      ne        !=  ~=
+      and       &
+      or        |
+      atan2
+      hypot
+      max
+      min
+      mod
+      rem
+      xor
+
+    additionally, since the A op= B assignment operators are equivalent
+    to A = A op B, the following operators are also affected:
+
+      +=  -=  .+=  .-=  .*=  ./=  .\=  .^=  .**=  &=  |=
+
+    See the "Broadcasting" section in the new "Vectorization and Faster
+    Code Execution" chapter of the manual for more details.
+
+ ** Octave now features a profiler, thanks to the work of Daniel Kraft
+    under the Google Summer of Code mentorship program.  The manual has
+    been updated to reflect this addition.  The new user-visible
+    functions are profile, profshow, and profexplore.
+
+ ** Overhaul of statistical distribution functions
+
+    Functions now return "single" outputs for inputs of class "single".
+
+    75% reduction in memory usage through use of logical indexing.
+
+    Random sample functions now use the same syntax as rand and accept
+    a comma separated list of dimensions or a dimension vector.
+
+    Functions have been made Matlab-compatible with regard to special
+    cases (probability on boundaries, probabilities for values outside
+    distribution, etc.).  This may cause subtle changes to existing
+    scripts.
+
+    negative binomial function has been extended to real, non-integer
+    inputs.  The discrete_inv function now returns v(1) for 0 instead of
+    NaN.  The nbincdf function has been recoded to use a closed form
+    solution with betainc.
+
+ ** strread, textscan, and textread have been completely revamped.
+
+    They now support nearly all Matlab functionality including:
+
+      * Matlab-compatible whitespace and delimiter defaults
+
+      * Matlab-compatible options: 'whitespace', treatasempty', format
+        string repeat count, user-specified comment style, uneven-length
+        output arrays, %n and %u conversion specifiers (provisionally)
+
+ ** All .m string functions have been modified for better performance or
+    greater Matlab compatibility.  Performance gains of 15X-30X have
+    been demonstrated.  Operations on cell array of strings no longer pay
+    quite as high a penalty as those on 2-D character arrays.
+
+      deblank:  Now requires character or cellstr input.
+
+      strtrim:  Now requires character or cellstr input.
+                No longer trims nulls ("\0") from string for Matlab
+                compatibility.
+
+      strmatch: Follows documentation precisely and ignores trailing spaces
+                in pattern and in string.  Note that this is documented
+                Matlab behavior but the implementation apparently does
+                not always follow it.
+
+      substr:   Now possible to specify a negative LEN option which
+                extracts to within LEN of the end of the string.
+
+      strtok:   Now accepts cellstr input.
+
+      base2dec, bin2dec, hex2dec:
+                Now accept cellstr inputs.
+
+      dec2base, dec2bin, dec2hex:
+                Now accept cellstr inputs.
+
+      index, rindex:
+                Now accept 2-D character array input.
+
+      strsplit: Now accepts 2-D character array input.
+
+ ** Geometry functions derived from Qhull (convhull, delaunay, voronoi)
+    have been revamped.  The options passed to the underlying qhull
+    command have been changed for better results or for Matlab
+    compatibility.
+
+      convhull: Default options are "Qt" for 2D, 3D, 4D inputs
+                Default options are "Qt Qx" for 5D and higher
+
+      delaunay: Default options are "Qt Qbb Qc Qz" for 2D and 3D inputs
+                Default options are "Qt Qbb Qc Qx" for 4D and higher
+
+      voronoi:  No default arguments
+
+ ** Date/Time functions updated.  Millisecond support with FFF format
+    string now supported.
+
+    datestr: Numerical formats 21, 22, 29 changed to match Matlab.
+             Now accepts cellstr input.
+
+ ** The following warning IDs have been removed:
+
+      Octave:associativity-change
+      Octave:complex-cmp-ops
+      Octave:empty-list-elements
+      Octave:fortran-indexing
+      Octave:precedence-change
+      
+ ** The warning ID Octave:string-concat has been renamed to
+    Octave:mixed-string-concat.
+
+ ** Octave now includes the following Matlab-compatible preference
+    functions:
+
+      addpref  getpref  ispref  rmpref  setpref
+
+ ** The following Matlab-compatible handle graphics functions have been
+    added:
+
+      guidata         uipanel        uitoolbar
+      guihandles      uipushtool     uiwait
+      uicontextmenu   uiresume       waitfor
+      uicontrol       uitoggletool
+
+    The uiXXX functions above are experimental.
+
+    Except for uiwait and uiresume, the uiXXX functions are not
+    supported with the FLTK+OpenGL graphics toolkit.
+
+    The gnuplot graphics toolkit does not support any of the uiXXX
+    functions nor the waitfor function.
+
+ ** New keyword parfor (parallel for loop) is now recognized as a valid
+    keyword.  Implementation, however, is still mapped to an ordinary
+    for loop.
+
+ ** Other new functions added in 3.6.0:
+
+      bicg                       nthargout                   usejava
+      is_dq_string               narginchk                   waitbar
+      is_sq_string               python                      zscore
+      is_function_handle         register_graphics_toolkit 
+      loaded_graphics_toolkits   recycle                   
+
+ ** Deprecated functions.
+
+    The following functions were deprecated in Octave 3.2 and have been
+    removed from Octave 3.6.
+                                           
+      create_set          spcholinv    splu   
+      dmult               spcumprod    spmax
+      iscommand           spcumsum     spmin
+      israwcommand        spdet        spprod
+      lchol               spdiag       spqr
+      loadimage           spfind       spsum
+      mark_as_command     sphcat       spsumsq
+      mark_as_rawcommand  spinv        spvcat 
+      spatan2             spkron       str2mat
+      spchol              splchol      unmark_command
+      spchol2inv          split        unmark_rawcommand
+
+    The following functions have been deprecated in Octave 3.6 and will
+    be removed from Octave 3.10 (or whatever version is the second major
+    release after 3.6):
+
+      cut                is_duplicate_entry
+      cor                polyderiv
+      corrcoef           shell_cmd 
+      __error_text__     studentize
+      error_text         sylvester_matrix
+</pre>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/NEWS-3.8.html	Tue Nov 01 01:06:10 2016 +0100
@@ -0,0 +1,400 @@
+<pre>
+Summary of important user-visible changes for version 3.8:
+---------------------------------------------------------
+
+  ** One of the biggest new features for Octave 3.8 is a graphical user
+     interface.  It is the one thing that users have requested most
+     often over the last few years and now it is almost ready.  But
+     because it is not quite as polished as we would like, we have
+     decided to wait until the 4.0.x release series before making the
+     GUI the default interface (until then, you can use the --force-gui
+     option to start the GUI).
+
+     Given the length of time and the number of bug fixes and
+     improvements since the last major release Octave, we also decided
+     against delaying the release of all these new improvements any
+     longer just to perfect the GUI.  So please enjoy the 3.8 release of
+     Octave and the preview of the new GUI.  We believe it is working
+     reasonably well, but we also know that there are some obvious rough
+     spots and many things that could be improved.
+
+     WE NEED YOUR HELP.  There are many ways that you can help us fix
+     the remaining problems, complete the GUI, and improve the overall
+     user experience for both novices and experts alike:
+
+       * If you are a skilled software developer, you can help by
+         contributing your time to help with Octave's development.  See
+         http://octave.org/get-involved.html for more information.
+
+       * If Octave does not work properly, you are encouraged
+         report the problems you find.  See http://octave.org/bugs.html
+         for more information about how to report problems.
+
+       * Whether you are a user or developer, you can help to fund the
+         project.  Octave development takes a lot of time and expertise.
+         Your contributions help to ensure that Octave will continue to
+         improve.  See http://octave.org/donate.html for more details.
+
+    We hope you find Octave to be useful.  Please help us make it even
+    better for the future!
+
+ ** Octave now uses OpenGL graphics by default with FLTK widgets.  If
+    OpenGL libraries or FLTK widgets are not available when Octave is
+    built, gnuplot is used.  You may also choose to use gnuplot for
+    graphics by executing the command
+
+      graphics_toolkit ("gnuplot")
+
+    Adding this command to your ~/.octaverc file will set the default
+    for each session.
+
+ ** Printing or saving figures with OpenGL graphics requires the
+    gl2ps library which is no longer distributed with Octave.  The
+    software is widely available in most package managers.  If a
+    pre-compiled package does not exist for your system, you can find
+    the current sources at http://www.geuz.org/gl2ps/.
+
+ ** Octave now supports nested functions with scoping rules that are
+    compatible with Matlab.  A nested function is one declared and defined
+    within the body of another function.  The nested function is only
+    accessible from within the enclosing function which makes it one
+    method for making private functions whose names do not conflict with those
+    in the global namespace (See also subfunctions and private functions).
+    In addition, variables in the enclosing function are visible within the
+    nested function.  This makes it possible to have a pseudo-global variable
+    which can be seen by a group of functions, but which is not visible in
+    the global namespace.
+    
+    Example:
+    function outerfunc (...)
+      ...
+      function nested1 (...)
+        ...
+        function nested2 (...)
+           ...
+        endfunction
+      endfunction
+
+      function nested3 (...)
+        ...
+      endfunction
+    endfunction
+
+ ** Line continuations inside character strings have changed.
+
+    The sequence '...' is no longer recognized as a line continuation
+    inside a character string.  A backslash '\' followed by a newline
+    character is no longer recognized as a line continuation inside
+    single-quoted character strings.  Inside double-quoted character
+    strings, a backslash followed by a newline character is still
+    recognized as a line continuation, but the backslash character must
+    be followed *immediately* by the newline character.  No whitespace or
+    end-of-line comment may appear between them.
+
+ ** Backslash as a continuation marker outside of double-quoted strings
+    is now deprecated.
+
+    Using '\' as a continuation marker outside of double quoted strings
+    is now deprecated and will be removed from a future version of
+    Octave.  When that is done, the behavior of
+
+      (a \
+       b)
+
+    will be consistent with other binary operators.
+
+ ** Redundant terminal comma accepted by parser
+
+    A redundant terminal comma is now accepted in matrix
+    definitions which allows writing code such as 
+
+    [a,...
+     b,...
+     c,...
+    ] = deal (1,2,3)
+
+ ** Octave now has limited support for named exceptions
+
+    The following syntax is now accepted:
+
+      try
+        statements
+      catch exception-id
+        statements
+      end
+
+    The exception-id is a structure with the fields "message" and
+    "identifier".  For example
+
+      try
+        error ("Octave:error-id", "error message");
+      catch myerr
+        printf ("identifier: %s\n", myerr.identifier);
+        printf ("message:    %s\n", myerr.message);
+      end_try_catch
+
+    When classdef-style classes are added to Octave, the exception-id
+    will become an MException object.
+
+ ** Warning states may now be set temporarily, until the end of the
+    current function, using the syntax
+
+      warning STATE ID "local"
+
+    in which STATE may be "on", "off", or "error".  Changes to warning
+    states that are set locally affect the current function and all
+    functions called from the current scope.  The previous warning state
+    is restored on return from the current function.  The "local"
+    option is ignored if used in the top-level workspace.
+
+ ** Warning IDs renamed:
+
+    Octave:array-as-scalar => Octave:array-to-scalar
+    Octave:array-as-vector => Octave:array-to-vector
+
+ ** 'emptymatch', 'noemptymatch' options added to regular expressions.
+
+    With this addition Octave now accepts the entire set of Matlab options
+    for regular expressions.  'noemptymatch' is the default, but 'emptymatch'
+    has certain uses where you need to match an assertion rather than actual
+    characters.  For example, 
+
+    regexprep ('World', '^', 'Hello ', 'emptymatch')
+      => Hello World
+
+    where the pattern is actually the assertion '^' or start-of-line.
+
+ ** For compatibility with Matlab, the regexp, regexpi, and regexprep
+    functions now process backslash escape sequences in single-quoted pattern
+    strings.  In addition, the regexprep function now processes backslash
+    escapes in single-quoted replacement strings.  For example,
+    
+    regexprep (str, '\t', '\n')
+
+    would search the variable str for a TAB character (escape sequence \t)
+    and replace it with a NEWLINE (escape sequence \n).  Previously the
+    expression would have searched for a literal '\' followed by 't' and
+    replaced the two characters with the sequence '\', 'n'.
+
+ ** A TeX parser has been implemented for the FLTK toolkit and is the default
+    for any text object including titles and axis labels.  The TeX parser is
+    supported only for display on a monitor, not for printing.
+
+    A quick summary of features:
+
+    Code         Feature     Example             Comment
+    -----------------------------------------------------------------
+    _            subscript   H_2O                formula for water
+    ^            exponent    y=x^2               formula for parabola
+    \char        symbol      \beta               Greek symbol beta
+    \fontname    font        \fontname{Arial}    set Arial font
+    \fontsize    fontsize    \fontsize{16}       set fontsize 16
+    \color[rgb]  fontcolor   \color[rgb]{1 0 1}  set magenta color 
+    \bf          bold        \bfBold Text        bold font
+    \it          italic      \itItalic Text      italic font
+    \sl          slanted     \slOblique Text     slanted font
+    \rm          normal      \bfBold\rmNormal    normal font
+    {}           group       {\bf Bold}Normal    group objects
+                             e^{i*\pi} = -1      group objects
+
+ ** The m-files in the plot directory have been overhauled.
+
+    The plot functions now produce output that is nearly visually compatible
+    with Matlab.  Plot performance has also increased, dramatically for some
+    functions such as comet and waitbar.  Finally, the documentation for most
+    functions has been updated so it should be clearer both how to use a
+    function and when a function is appropriate.
+
+ ** The m-files in the image directory have been overhauled.
+
+    The principal benefit is that Octave will now no longer automatically
+    convert images stored with integers to doubles.  Storing images as uint8
+    or uint16 requires only 1/8 or 1/4 the memory of an image stored using
+    doubles.  For certain operations, such as fft2, the image must still be
+    converted to double in order to work.
+
+    Other changes include fixes to the way indexed images are read from a
+    colormap depending on the image class (integer images have a -1 offset to
+    the colormap row number).
+
+ ** The imread and imwrite functions have been completely rewritten.
+
+    The main changes relate to the alpha channel, support for reading and
+    writing of floating point images, implemented writing of indexed images,
+    and appending images to multipage image files.
+
+    The issues that may arise due to backwards incompatibility are:
+
+      * imwrite no longer interprets a length of 2 or 4 in the third dimension
+        as grayscale or RGB with alpha channel (a length of 4 will be saved
+        as a CMYK image).  Alpha channel must be passed as separate argument.
+
+      * imread will always return the colormap indexes when reading an indexed
+        image, even if the colormap is not requested as output.
+
+      * transparency values are now inverted from previous Octave versions
+        (0 is for completely transparent instead of completely opaque).
+
+    In addition, the function imformats has been implemented to expand
+    reading and writing of images of different formats through imread
+    and imwrite.
+
+ ** The colormap function now provides new options--"list", "register",
+    and "unregister"--to list all available colormap functions, and to
+    add or remove a function name from the list of known colormap
+    functions.  Packages that implement extra colormaps should use these
+    commands with PKG_ADD and PKG_DEL statements.
+
+ ** strsplit has been modified to be compatible with Matlab.  There
+    are two instances where backward compatibility is broken.
+
+    (1) Delimiters are now string vectors, not scalars.
+
+    Octave's legacy behavior
+
+      strsplit ("1 2, 3", ", ")
+      ans = 
+      {
+       [1,1] = 1
+       [1,2] = 2
+       [1,3] = 
+       [1,4] = 3
+      }
+
+    Matlab compatible behavior
+
+      strsplit ("1 2, 3", ", ")
+      ans = 
+      {
+       [1,1] = 1 2
+       [1,2] = 3
+      }
+
+    (2) By default, Matlab treats consecutive delimiters as a single
+    delimiter.  By default, Octave's legacy behavior was to return an
+    empty string for the part between the delmiters.
+
+    Where legacy behavior is desired, the call to strsplit() may be
+    replaced by ostrsplit(), which is Octave's original implementation of
+    strsplit().
+
+ ** The datevec function has been extended for better Matlab compatibility.
+    It now accepts string inputs in the following numerical formats: 12, 21,
+    22, 26, 29, 31.  This is undocumented, but verifiable, Matlab behavior.
+    In addition, the default for formats which do not specify a date is
+    January 1st of the current year.  The previous default was the current day,
+    month, and year.  This may produce changes in existing scripts.
+
+ ** The error function and its derivatives has been extended to accept complex
+    arguments.  The following functions now accept complex inputs:
+
+    erf  erfc  erfcx   
+
+    In addition two new error functions erfi (imaginary error function) and
+    dawson (scaled imaginary error function) have been added.
+
+ ** The glpk function has been modified to reflect changes in the GLPK
+    library.  The "round" and "itcnt" options have been removed.  The
+    "relax" option has been replaced by the "rtest" option.  The numeric
+    values of error codes and of some options have also changed.
+
+ ** The kurtosis function has changed definition to be compatible with 
+    Matlab.  It now returns the base kurtosis instead of the "excess kurtosis".
+    The old behavior can be had by changing scripts to normalize with -3.
+
+               "excess kurtosis" = kurtosis (x) - 3
+
+ ** The moment function has changed definition to be compatible with 
+    Matlab.  It now returns the central moment instead of the raw moment.
+    The old behavior can be had by passing the type argument "r" for raw.
+
+ ** The default name of the Octave crash dump file is now 
+    "octave-workspace" instead of "octave-core".  The exact name can
+    always be customized with the octave_core_file_name function.
+
+ ** A citation command has been added to display information on how to
+    cite Octave and packages in publications.  The package system will
+    look for and install CITATION files from packages.
+
+ ** The java package from Octave Forge is now part of core Octave.  The
+    following new functions are available for interacting with Java
+    directly from Octave:
+
+      debug_java     java_matrix_autoconversion
+      isjava         java_unsigned_autoconversion
+      java2mat       javaaddpath
+      javaArray      javaclasspath
+      javaMethod     javamem
+      javaObject     javarmpath
+                     usejava
+
+    In addition, the following functions that use the Java interface
+    are now available (provided that Octave is compiled with support for
+    Java enabled):
+
+      helpdlg    listdlg   questdlg
+      inputdlg   msgbox    warndlg
+
+ ** Other new functions added in 3.8.0:
+
+      atan2d                     erfi             lines
+      base64_decode              expint           linsolve
+      base64_encode              findfigs         missing_component_hook
+      betaincinv                 flintmax         polyeig
+      built_in_docstrings_file   fminsearch       prefdir
+      cmpermute                  gallery          preferences
+      cmunique                   gco              readline_re_read_init_file
+      colorcube                  hdl2struct       readline_read_init_file
+      copyobj                    history_save     rgbplot
+      dawson                     imformats        save_default_options
+      dblist                     importdata       shrinkfaces
+      desktop                    isaxes           splinefit
+      doc_cache_create           iscolormap       stemleaf
+      ellipj                     isequaln         strjoin
+      ellipke                    jit_debug        struct2hdl
+      erfcinv                    jit_enable       tetramesh
+                                 jit_startcnt     waterfall
+
+ ** Deprecated functions.
+
+    The following functions were deprecated in Octave 3.4 and have been
+    removed from Octave 3.8.
+                                           
+      autocor    dispatch              is_global    setstr
+      autocov    fstat                 krylovb      strerror
+      betai      gammai                perror       values
+      cellidx    glpkmex               replot               
+      cquad      is_duplicate_entry    saveimage            
+      
+    The following functions have been deprecated in Octave 3.8 and will
+    be removed from Octave 3.12 (or whatever version is the second major
+    release after 3.8):
+
+      default_save_options    java_new            
+      gen_doc_cache           java_set                   
+      interp1q                java_unsigned_conversion
+      isequalwithequalnans    javafields                
+      java_convert_matrix     javamethods               
+      java_debug              re_read_readline_init_file
+      java_get                read_readline_init_file   
+      java_invoke             saving_history            
+
+
+    The following keywords have been deprecated in Octave 3.8 and will
+    be removed from Octave 3.12 (or whatever version is the second major
+    release after 3.8):
+
+      static
+
+    The following configuration variables have been deprecated in Octave
+    3.8 and will be removed from Octave 3.12 (or whatever version is the
+    second major release after 3.8):
+
+      CC_VERSION  (now GCC_VERSION)
+      CXX_VERSION (now GXX_VERSION)
+
+    The internal class Octave_map has been deprecated in Octave 3.8 and
+    will be removed from Octave 3.12 (or whatever version is the second
+    major release after 3.8).  Replacement classes are octave_map
+    (struct array) or octave_scalar_map for a single structure.
+</pre>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/NEWS-3.html	Tue Nov 01 01:06:10 2016 +0100
@@ -0,0 +1,222 @@
+<!doctype html public "-//IETF//DTD HTML Strict//EN">
+<html>
+<head>
+<title>Notable Changes in Octave version 3</title>
+<link rel="stylesheet" type="text/css" href="octave.css" />
+</head>
+
+<body>
+<div id="title"><h1>News for Octave Version 3</h1></div>
+
+<ul>
+<li>Compatibility with Matlab graphics is much better.  We now
+    have some graphics features that work like Matlab's Handle
+    Graphics (tm):
+<ul>
+<li>  You can make a subplot and then use the print function to
+      generate file with the plot.</li>
+
+<li>  RGB line colors are supported if you use gnuplot 4.2.  Octave
+      can still use gnuplot 4.0, but there is no way to set arbitrary
+      line colors with it when using the Matlab-style plot functions.
+      There never was any way to do this reliably with older versions
+      of gnuplot (whether run from Octave or not) since it only
+      provided a limited set to choose from, and they were terminal
+      dependent, so choosing color 1 with the X11 terminal would be
+      different from color 1 with the PostScript terminal.  Valid RGB
+      colors for gnuplot 4.0 are the eight possible combinations of 0
+      and 1 for the R, G and B values. Invalid values are all mapped
+      to the same color.
+<p>
+      This also affects patch objects used in the bar, countour, meshc
+      and surfc functions, where the bars and contours will be
+      monochrome. A workaround for this is to type "colormap gmap40"
+      that loads a colormap that in many cases will be adequate for
+      simple bar and contour plots.</li>
+
+<li>  You can control the width of lines using (for example):
+<pre>
+	line (x, y, "linewidth", 4, "color", [1, 0, 0.5]);
+</pre>
+      (this also shows the color feature).</li>
+
+<li>  With gnuplot 4.2, image data is plotted with gnuplot and may be
+      combined with other 2-d plot data.</li>
+
+<li>  Lines for contour plots are generated with an Octave function, so
+      contour plots are now 2-d plots instead of special 3-d plots, and
+      this allows you to plot additional 2-d data on top of a contour
+      plot.</li>
+
+<li>  With the gnuplot "extended" terminals the TeX interpreter is
+      emulated. However, this means that the TeX interpreter is only
+      supported on the postscript terminals with gnuplot 4.0. Under
+      gnuplot 4.2 the terminals aqua, dumb, png, jpeg, gif, pm, windows,
+      wxt, svg and x11 are supported as well.</li>
+
+<li>  The following plot commands are now considered obsolete and will
+      be removed from a future version of Octave:
+<pre>
+	__gnuplot_set__
+	__gnuplot_show__
+	__gnuplot_plot__
+	__gnuplot_splot__
+	__gnuplot_replot__
+</pre>
+      Additionally, these functions no longer have any effect on plots
+      created with the Matlab-style plot commands
+      (<tt>plot</tt>, <tt>line</tt>, <tt>mesh</tt>, <tt>semilogx</tt>,
+      etc.). 
+
+<li>  Plot property values are not extensively checked.  Specifying
+      invalid property values may produce unpredictible results.</li>
+
+<li>  Octave now sends data over the same pipe that is used to send
+      commands to gnuplot.  While this avoids the problem of
+      cluttering /tmp with data files, it is no longer possible to use
+      the mouse to zoom in on plots.  This is a limitation of gnuplot,
+      which is unable to zoom when the data it plots is not stored in
+      a file.  Some work has been done to fix this problem in newer
+      versions of gnuplot (> 4.2.2).  See for example,
+      <a href="http://www.nabble.com/zooming-of-inline-data-tf4357017.html#a12416496">this thread</a> on the gnuplot development list.
+</ul></li>
+
+
+<li>The way Octave handles search paths has changed.  Instead of
+    setting the built-in variable <tt>LOADPATH</tt>, you must
+    use <tt>addpath</tt>, <tt>rmpath</tt>, or <tt>path</tt> to
+    manipulate the function search path.  These functions will
+    maintain <tt>"."</tt> at the head of the path, for compatibility
+    with Matlab.
+<p>
+    Leading, trailing or doubled colons are no longer special.
+    Now, all elements of the search path are explicitly included in
+    the path when Octave starts.  To display the path, use
+    the <tt>path</tt> function.
+<p>
+    Path elements that end in <tt>//</tt> are no longer searched recursively.
+    Instead, you may use addpath and the genpath function to add an
+    entire directory tree to the path.  For example,
+<pre>
+      addpath (genpath ("~/octave"));
+</pre>
+    will add ~/octave and all directories below it to the head of the
+    path.</li>
+
+
+<li>Previous versions of Octave had a number of built-in variables to
+    control warnings (for example, <tt>warn_divide_by_zero</tt>).  These
+    variables have been replaced by warning identifiers that are used
+    with the warning function to control the state of warnings.
+<p>
+    For example, instead of writing
+<pre>
+      warn_divide_by_zero = false;
+</pre>
+    to disable divide-by-zero warnings, you should write
+<pre>
+      warning ("off", "Octave:divide-by-zero");
+</pre>
+    You may use the same technique in your own code to control
+    warnings.  For example, you can use
+<pre>
+      warning ("My-package:phase-of-the-moon",
+               "the phase of the moon could cause trouble today");
+</pre>
+    to allow users to control this warning using the
+    <tt>"My-package:phase-of-the-moon"</tt> warning identifier.
+<p>
+    You may also enable or disable all warnings, or turn them into
+    errors:
+<pre>
+      warning ("on", "all");
+      warning ("off", "all");
+      warning ("error", "Octave:divide-by-zero");
+      warning ("error", "all");
+</pre>
+    You can query the state of current warnings using
+<pre>
+      warning ("query", ID)
+      warning ("query")
+</pre>
+    (only those warning IDs which have been explicitly set are
+    returned).
+<p>
+    A partial list and description of warning identifiers is available
+    using
+<pre>
+      help warning_ids
+</pre></li>
+
+
+<li>All built-in variables have been converted to functions.  This
+    change simplifies the interpreter and allows a consistent
+    interface to internal variables for user-defined packages and the
+    core functions distributed with Octave.  In most cases, code that
+    simply accesses internal variables does not need to change.  Code
+    that sets internal variables will change.  For example, instead of
+    writing
+<pre>
+      PS1 = ">> ";
+</pre>
+    you will need to write
+<pre>
+      PS1 (">> ");
+</pre>
+    If you need write code that will run in both old and new versions
+    of Octave, you can use something like
+<pre>
+      if (exist ("OCTAVE_VERSION") == 5)
+        ## New:
+        PS1 (">> ");
+      else
+        ## Old:
+        PS1 = ">> ";
+      endif
+</pre></li>
+
+
+<li>For compatibility with Matlab, the output order of Octave's
+    <tt>"system"</tt> function has changed from
+<pre>
+      [output, status] = system (cmd);
+</pre>
+    to
+<pre>
+      [status, output] = system (cmd);
+</pre></li>
+
+
+<li>For compatibility with Matlab, <tt>normcdf</tt>, <tt>norminv</tt>,
+    <tt>normpdf</tt>, and <tt>normrnd</tt> have been modified to
+    compute distributions using the standard deviation instead of the
+    variance.</li>
+
+
+<li>For compatibility with Matlab, the output of Octave's fsolve
+    function has been changed from
+<pre>
+      [x, info, msg] = fsolve (...);
+</pre>
+    to
+<pre>
+      [x, fval, info] = fsolve (...);
+</pre></li>
+
+
+<li>For compatibility with Matlab, <tt>normcdf</tt>, <tt>norminv</tt>,
+    <tt>normpdf</tt>, and <tt>normrnd</tt> have been modified to
+    compute distributions using the standard deviation instead of the
+    variance.</li>
+
+
+<li>For compatibility with
+    Matlab, <tt>gamcdf</tt>, <tt>gaminv</tt>, <tt>gampdf</tt>,
+    <tt>gamrnd</tt>, <tt>expcdf</tt>, <tt>expinv</tt>, <tt>exppdf</tt>
+    and <tt>exprnd</tt> have been modified to compute the
+    distributions using the standard scale factor rather than one over
+    the scale factor.
+</ul>
+
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/NEWS-4.0.html	Tue Nov 01 01:06:10 2016 +0100
@@ -0,0 +1,339 @@
+<pre>
+Summary of important user-visible changes for version 4.0:
+---------------------------------------------------------
+
+ ** A graphical user interface is now the default when running Octave
+    interactively.  The start-up option --no-gui will run the familiar
+    command line interface, and still allows use of the GUI dialogs and
+    qt plotting toolkit.  The option --no-gui-libs runs a minimalist
+    command line interface that does not link with the Qt libraries and
+    uses the fltk toolkit for plotting.
+
+ ** Octave now uses OpenGL graphics with Qt widgets by default.  If OpenGL
+    libraries are not available when Octave is built, gnuplot is used.
+    You may choose to use the fltk or gnuplot toolkit for graphics by
+    executing the command
+
+      graphics_toolkit ("fltk")
+        OR
+      graphics_toolkit ("gnuplot")
+
+    Adding such a command to your ~/.octaverc file will set the default
+    for each session.
+
+ ** A new syntax for object oriented programming termed classdef has been
+    introduced.  See the manual for more extensive documentation of the
+    classdef interface.
+
+    New keywords:
+
+      classdef      endclassdef
+      enumeration   endenumeration
+      events        endevents
+      methods       endmethods
+      properties    endproperties
+
+ ** New audio functions and classes:
+
+      audiodevinfo  audioread      sound
+      audioinfo     audiorecorder  soundsc
+      audioplayer   audiowrite
+
+ ** Other new classes in Octave 4.0:
+
+      audioplayer    inputParser
+      audiorecorder
+
+ ** Optional stricter Matlab compatibility for ranges, diagonal matrices,
+    and permutation matrices.
+
+    Octave has internal optimizations which use space-efficient storage
+    for the three data types above.  Three new functions have been added
+    which control whether the optimizations are used (default), or whether
+    the data types are stored as full matrices.
+
+    disable_range   disable_diagonal_matrix   disable_permutation_matrix
+
+    All three optimizations are disabled if Octave is started with the
+    --braindead command line option.
+
+ ** The preference
+
+      do_braindead_shortcircuit_evaluation
+
+    is now enabled by default.
+
+ ** The preference
+
+      allow_noninteger_range_as_index
+
+    is now enabled by default and the warning ID
+
+      Octave:noninteger-range-as-index
+
+    is now set to "on" by default instead of "error" by default and "on"
+    for --traditional.
+
+ ** The "backtrace" warning option is now enabled by default.  This change
+    was made for Matlab compatibility.
+
+ ** For compatibility with Matlab, the "ismatrix (x)" function now only checks
+    the dimension of "x".  The old behaviour of "ismatrix" is obtained by
+    "isnumeric (x) || islogical (x) || ischar (x)".
+
+ ** The nextpow2 function behaviour has been changed for vector inputs.
+    Instead of computing `nextpow2 (length (x))', it will now compute
+    nextpow2 for each element of the input.  This change is Matlab compatible,
+    and also prevents bugs for "vectors" of length 1.
+
+ ** polyeig now returns a row vector of eigenvalues rather than a matrix
+    with the eigenvalues on the diagonal.  This change was made for Matlab
+    compatibility.
+
+ ** Interpolation function changes for Matlab compatibility
+
+    The interpolation method 'cubic' is now equivalent to 'pchip'
+    for interp1, interp2, and interp3.  Previously, 'cubic' was equivalent
+    to 'spline' for interp2.  This may produce different results as 'spline'
+    has continuous 1st and 2nd derivatives while 'pchip' only has a continuous
+    1st derivative.  The methods 'next' and 'previous' have been added to
+    interp1 for compatibility.
+
+ ** The delaunay function has been extended to accept 3-D inputs for
+    Matlab compatibility.  The delaunay function no longer plots the
+    triangulation if no output argument is requested, instead, the
+    triangulation is always returned.  The delaunay3 function which
+    handles 3-D inputs has been deprecated in favor of delaunay.
+
+ ** The trigonometric functions asin and acos return different phase values
+    from previous versions of Octave when the input is outside the principal
+    branch ([-1, 1]).  If the real portion of the input is greater than 1 then
+    the limit from below is taken.  If the real portion is less than 1 then the
+    limit from above is taken.  This criteria is consistent with several other
+    numerical analysis software packages.
+
+ ** The hyperbolic function acosh now returns values with a phase in the range
+    [-pi/2, +pi/2].  Previously Octave returned values in the range [0, pi].
+    This is consistent with several other numerical analysis software packages.
+
+ ** strfind changes when using empty pattern ("") for Matlab compatibility
+
+    strfind now returns an empty array when the pattern itself is empty.
+    In previous versions of Octave, strfind matched at every character
+    location when the pattern was empty.
+
+      NEW
+      strfind ("abc", "") => []
+      OLD
+      strfind ("abc", "") => [1, 2, 3, 4]
+
+ ** Integer formats used in the printf family of functions now work for
+    64-bit integers and are more compatible with Matlab when printing
+    non-integer values.  Now instead of truncating, Octave will switch
+    the effective format to '%g' in the following circumstances:
+
+      * the value of an integer type (int8, uint32, etc.) value exceeds
+        the maximum for the format specifier.  For '%d', the limit is
+        intmax ('int64') and for '%u' it is intmax ('uint64').
+
+      * round(x) != x or the value is outside the range allowed by the
+        integer format specifier.
+
+    There is still one difference:  Matlab switches to '%e' and Octave
+    switches to '%g'.
+
+ ** The functions intersect, setdiff, setxor, and union now return a
+    column vector as output unless the input was a row vector.  This change
+    was made for Matlab compatibility.
+
+ ** The inpolygon function now returns true for points that are within
+    the polygon OR on it's edge.  This change was made for Matlab
+    compatibility. 
+
+ ** The archive family of functions (bzip2, gzip, zip, tar) and their
+    unpacking routines (bunzip2, gunzip, unzip, untar, unpack) have
+    been recoded.  Excepting unpack, the default is now to place files
+    in the same directory as the archive (on unpack) or as the original
+    files (on archiving).
+
+ ** Qt and FLTK graphics toolkits now support offscreen rendering on Linux.
+    In other words, print will work even when the figure visibility is "off".
+
+ ** Z-order stacking issues with patches, grid lines, and line object
+    plot markers for on screen display and printing have all been resolved.
+    For 2-D plots the axis grid lines can be placed on top of the plot
+    with set (gca, "layer", "top").
+
+ ** The patch graphic object has been overhauled.  It now produces visual
+    results equivalent to Matlab even for esoteric combinations of
+    faces/vertices/cdata.
+
+ ** The polar() plot function now draws a circular theta axis and
+    radial rho axis rather than using a rectangular x/y axis.
+
+ ** linkprop has been completely re-coded for performance and Matlab
+    compatibility.  It now returns a linkprop object which must be stored
+    in a variable for as long as the graphic objects should remain linked.
+    To unlink properties use 'clear hlink' where hlink is the variable
+    containing the linkprop object.
+
+ ** isprime has been extended to operate on negative and complex inputs.
+
+ ** xor has been extended to accept more than two arguments in which case
+    it performs cumulative XOR reduction.
+
+ ** The following functions now support N-dimensional arrays:
+
+      fliplr   flipud   rot90   rectint
+
+ ** The new warning ID "Octave:data-file-in-path" replaces the three
+    previous separate warning IDs "Octave:fopen-file-in-path",
+    "Octave:load-file-in-path", and "Octave:md5sum-file-in-path".
+
+ ** The warning ID Octave:singular-matrix-div has been replaced by
+    Octave:nearly-singular-matrix and Octave:singular-matrix.
+
+ ** The warning ID Octave:matlab-incompatible has been replaced by
+    Octave:language-extension to better reflect its meaning.
+
+ ** The warning ID Octave:broadcast has been removed.  Instead automatic
+    broadcasting will throw an Octave:language-extension warning.  This
+    warning ID is used for broadcasting as well as other features not
+    available in Matlab.
+
+ ** Other new functions added in 4.0:
+
+      annotation
+      bandwidth
+      cubehelix
+      dir_in_loadpath
+      flip
+      frame2im
+      get_home_directory
+      hgload
+      hgsave
+      ichol
+      ilu
+      im2frame
+      isbanded
+      isdiag
+      isstudent
+      istril
+      istriu
+      javachk
+      jit_failcnt
+      linkaxes
+      lscov
+      metaclass
+      numfields
+      open
+      ordschur
+      pan
+      qmr
+      rotate
+      rotate3d
+      sylvester
+      unsetenv
+      validateattributes
+      zoom
+
+ ** inline() scheduled for eventual deprecation by Matlab
+
+    Functions created through the use of inline are scheduled for deprecation
+    by Matlab.  When this occurs Octave will continue to support inline
+    functions for an indeterminate amount of time before also removing support.
+    All new code should use anonymous functions in place of inline functions.
+
+ ** Deprecated functions.
+
+    The following functions have been deprecated in Octave 4.0 and will
+    be removed from Octave 4.4 (or whatever version is the second major
+    release after 4.0):
+
+      Function             | Replacement
+      ---------------------|------------------
+      bicubic              | interp2
+      delaunay3            | delaunay
+      dump_prefs           | individual preference get/set routines
+      find_dir_in_path     | dir_in_loadpath
+      finite               | isfinite
+      fmod                 | rem
+      fnmatch              | glob or regexp
+      loadaudio            | audioread
+      luinc                | ilu or ichol
+      mouse_wheel_zoom     | mousewheelzoom axes property
+      nfields              | numfields
+      octave_tmp_file_name | tempname
+      playaudio            | audioplayer
+      saveaudio            | audiowrite
+      syl                  | sylvester
+      usage                | print_usage
+
+      allow_noninteger_range_as_index
+      do_braindead_shortcircuit_evaluation
+      setaudio
+
+ ** The following functions were deprecated in Octave 3.8 and will be
+    removed from Octave 4.2 (or whatever version is the second major
+    release after 3.8):
+
+      default_save_options    java_new
+      gen_doc_cache           java_unsigned_conversion
+      interp1q                javafields
+      isequalwithequalnans    javamethods
+      java_convert_matrix     re_read_readline_init_file
+      java_debug              read_readline_init_file
+      java_invoke             saving_history
+
+ ** The following functions were deprecated in Octave 3.6 and have been
+    removed from Octave 4.0.
+
+      cut                polyderiv
+      cor                shell_cmd
+      corrcoef           studentize
+      __error_text__     sylvester_matrix
+      error_text
+
+ ** The following keywords were deprecated in Octave 3.8 and have been
+    removed from Octave 4.0
+
+      static
+
+ ** The following configuration variables were deprecated in Octave 3.8
+    and have been removed from Octave 4.0
+
+      CC_VERSION  (now GCC_VERSION)
+      CXX_VERSION (now GXX_VERSION)
+
+ ** The internal function atan2 of the sparse matrix class has been deprecated
+    in Octave 4.0 and will be removed from Octave 4.4 (or whatever version is
+    the second major release after 4.0).  Use the Fatan2 function with sparse
+    inputs as a replacement.
+
+ ** The internal class Octave_map was deprecated in Octave 3.8 and has
+    been removed from Octave 4.0.  Replacement classes are
+    octave_map (struct array) or octave_scalar_map for a single structure.
+
+ ** The configure option --enable-octave-allocator has been removed.
+    The internal class octave_allocator declared in oct-alloc.h has
+    been removed.  The header remains, but is deprecated.  The macros to
+    access the class (DECLARE_OCTAVE_ALLOCATOR, DEFINE_OCTAVE_ALLOCATOR,
+    and DEFINE_OCTAVE_ALLOCATOR2) are now unconditionally defined to be
+    empty.
+
+ ** Octave now has OpenMP enabled by default if the system provides a
+    working OpenMP implementation.  This allows oct-file modules to take
+    advantage of OpenMP if desired.  This can be disabled when building
+    Octave with the configure option --disable-openmp.
+
+ ** Octave now automatically truncates intermediate calculations done with
+    floating point values to 64 bits.  Some hardware math co-processors, such
+    as the x87, maintain extra precision, but this leads to disagreements in
+    calculations when compared to reference implementations in software using
+    the IEEE standard for double precision.  There was no measurable
+    performance impact to this change, but it may be disabled with the
+    configure option --disable-float-truncate.  MinGW and Cygwin platforms,
+    as well as GCC compilers >= 5.0 require this feature.  Non-x87 hardware,
+    or hardware using SSE options exclusively, can disable float truncation
+    if desired.
+</pre>
--- a/README.md	Tue Nov 01 00:28:55 2016 +0100
+++ b/README.md	Tue Nov 01 01:06:10 2016 +0100
@@ -1,26 +1,174 @@
 # octave-web
-Proposed update of [octave.org](http://www.octave.org).
+
+This is the [http://www.octave.org][1] website development repository.
+
+The development and deployment workflow in short:
+
+1. The website is developed in this [web-octave][2] Mercurial repository.
+2. Static HTML pages are generated from this [web-octave][2] repository
+   and are deployed at the [Savannah CVS][3] repository.
+3. After deploying the static pages, they are visible from
+   [http://www.octave.org][1], that redirects to
+   [https://www.gnu.org/software/octave][4].
+
+[1]: http://www.octave.org
+[2]: http://hg.octave.org/web-octave
+[3]: http://web.cvs.savannah.gnu.org/viewvc/octave/?root=octave
+[4]: https://www.gnu.org/software/octave
+
+
+
+## Development
+
+### What makes this way of development better, than the prior?
+
+- **Official RSS feeds** are **easily** maintained now **at a single place**:
+  the `_posts` subdirectory, later accessible via
+  `https://www.gnu.org/software/octave/feed.xml` and automatically spread
+  to an arbitrary amount of readers, including almost all below mentioned.
+
+  The Octave News are currently very widespread
+  (and **individually maintained!**) at:
+  - https://www.gnu.org/software/octave/ (excerpt for the start page)
+  - https://www.gnu.org/software/octave/news.html (some archive)
+  - https://www.gnu.org/software/octave/community-news.html (excerpt for the
+    Octave GUI)
+  - https://www.gnu.org/software/octave/fixes-4.0.x.html (here are many more
+    to come!)
+  - http://wiki.octave.org/GNU_Octave_Wiki#News (some excerpt, anyone can edit)
+
+- **Content is content**: Page content is primary written in [Markdown][5],
+  a lightweight Markup language, thus no nasty forgotten HTML tags, that
+  make content look ugly for any author of a HTML page.
+  [Jekyll][6] makes valid HTML from [Markdown][5] content.
+
+- **Easy maintenance**: Just a single command (see below), and [Jekyll][6]
+  builds a consistent, up-to-date static page.  The only maintenance burden,
+  as it is today anyway: The [Savannah CVS][3] repository.
+
+[5]: https://daringfireball.net/projects/markdown/syntax
+[6]: https://jekyllrb.com/
+
+
+
+### Getting the sources
+
+Anyone is free to clone this development repository, simply type
+
+    hg clone http://hg.octave.org/web-octave
 
-## Developing
-- Install Jekyll from Rubygems
-  
-  `gem install jekyll`
-  
-- Compile the assets into `_site` (this directory is ignored by revision control and will be created on first build)
-  
-  `jekyll build`
-  
-- Serve the site
+to get anonymous read access without writing privileges.
+To push your changes, please contact the octave developers at
+`maintainers@octave.org`.
+
+If you already have writing permissions for this repository,
+you should clone the repository using
+
+    hg clone ssh://gnuoctave@octave.org/hg/web-octave
+
+
+
+### Building requisites
+
+To build the static website, you need to install [Jekyll][6] and a few more
+tools from [Rubygems][7].  Just type
+
+    gem install jekyll jekyll-octicons pygments.rb
+
+[7]: https://rubygems.org/
+
+
+
+### Building the static website
+
+All relevant information for Jekyll to build the static website is located
+in the file `_config.yml`.
+Typing
+
+    jekyll build
 
-  `jekyll serve --watch`
-  
-## Configuring
-See [_config.yml](_config.yml). In particular, `baseurl` will need to be adjusted to match the path of the subdirectory where the site will be hosted, e.g., for `gnu.org/octave` use `/octave`. Currently `baseurl` is set to the repository name in order to work with the Github Pages' build service.
+from the repositories root directory will build a complete static website
+into the subdirectory `_site` using this information (this directory is
+ignored by Mercurial and will be created on first build).
+
+Especially for development, it is beneficial to watch the changes locally
+before pushing any changes.
+Jekyll provides a local webserver by typing
+
+    jekyll serve
+
+and rebuilds the whole static website automatically, as it monitors any
+file changes.
+
+To build the test page, that can be deployed at some subdirectory, e.g.
+`http://www.octave.org/new`, use
+
+    jekyll build --config _config.yml,_config_test.yml
+
+
+
+### Typical development tasks
+
+- **Add a new RSS post**
+
+  Duplicate another post in the subdirectory `_posts` and
+  adjust the filename, especially the date
+
+
+
+
 
 ## Deploying
-- Configure paths as needed in `_config.yml`
-- Build the static site
-  
-  `jekyll build`
+
+After building the static website from [web-octave][2] into the
+the subdirectory `_site` using Jekyll it can be deployed at the
+[Savannah CVS][3] repository to become visible to the world.
+
+Therefore, checkout the [Savannah CVS][3] repository somewhere
+outside the [web-octave][2] directory, typing
+
+    export CVS_RSH=ssh
+    cvs -z3 -d:ext:<Savannah account>@cvs.savannah.gnu.org:/web/octave checkout -P octave
+
+Now the following steps are required for deployment
+(see [here][8] and [here][9] for some introduction to CVS):
+
+1. Remove all previous files in the target directory,
+   *but no directories at all or CVS related stuff*!
+   This is due to a [limitation of CVS][10].
+
+       find octave -type f -not -path "*/CVS/*" -exec rm -f '{}' \;
+
+   *Note:* `octave` in the command above is the name of the checked out
+   [Savannah CVS][3] repository.
+
+2. Now copy the new content of [web-octave][2] subdirectory `_site` into the
+   [Savannah CVS][3] repository.
 
-- Copy the static assets from `_site` to a server.
+3. Then in the [Savannah CVS][3] repository:
+
+       cd octave
+
+   1. Remove all no longer existent files
+
+          cvs remove
+
+   2. Add all potential new directories to CVS
+
+          find . -type d -not -name "CVS" -exec cvs add '{}' \;
+
+   3. Add all potential new files to CVS (the [following command][11]
+      proved to me fast)
+
+          find . -type f | grep -v CVS | xargs cvs add
+
+   4. Commit the chages to get online
+
+          cvs commit
+
+Now everything should be visible to the world.
+
+[8]: https://savannah.nongnu.org/projects/cvs
+[9]: http://www.cs.umb.edu/~srevilak/cvs.html
+[10]: https://web.archive.org/web/20140629054602/http://ximbiot.com/cvs/manual/cvs-1.11.23/cvs_7.html#SEC69
+[11]: http://stackoverflow.com/questions/5071/how-to-add-cvs-directories-recursively
--- a/_config.yml	Tue Nov 01 00:28:55 2016 +0100
+++ b/_config.yml	Tue Nov 01 01:06:10 2016 +0100
@@ -10,11 +10,12 @@
 email: maintainers@octave.org
 description: > # this means to ignore newlines until "baseurl:"
   GNU Octave is a programming language for scientific computing.
-baseurl: "/octave-web" # the subpath of your site, e.g. /blog
-url: "//www.gnu.org" # the base hostname & protocol for your site
-wiki_url: "//wiki.octave.org"
-faq_url: "//wiki.octave.org/faq"
-docs_url: "//www.gnu.org/software/octave/doc/interpreter/"
+baseurl: "/software/octave" # the subpath of your site, e.g. /blog
+url: "https://www.gnu.org" # the base hostname & protocol for your site
+wiki_url: "http://wiki.octave.org"
+faq_url: "http://wiki.octave.org/faq"
+docs_url: "https://www.gnu.org/software/octave/doc/interpreter"
+bugs_url: "https://savannah.gnu.org/bugs/?group=octave"
 maintainers_email: "maintainers@octave.org"
 help_email: "help@octave.org"
 irc_channel: "#octave"
@@ -22,3 +23,8 @@
 
 # Build settings
 markdown: kramdown
+highlighter: pygments
+
+# Icons
+gems:
+  - jekyll-octicons
--- a/_config_octave.yml	Tue Nov 01 00:28:55 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-# Site settings for deployment under https://www.gnu.org/software/octave
-# build with
-#
-# > jekyll build --config _config.yml,_config_octave.yml
-#
-baseurl: "/software/octave/new" # the subpath of your site, e.g. /blog
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/_config_test.yml	Tue Nov 01 01:06:10 2016 +0100
@@ -0,0 +1,9 @@
+# Site settings for deployment under a test URL
+#
+#   https://www.gnu.org/software/octave/new
+#
+# Build with
+#
+#   jekyll build --config _config.yml,_config_test.yml
+#
+baseurl: "/software/octave/new" # the subpath of your site, e.g. /blog
--- a/_includes/footer.html	Tue Nov 01 00:28:55 2016 +0100
+++ b/_includes/footer.html	Tue Nov 01 01:06:10 2016 +0100
@@ -47,7 +47,11 @@
 			<div class="text-center">
 				<p>Octave is free software under the <a href="http://www.gnu.org/copyleft/gpl.html">GNU General Public License.</a></p>
 				<small>
-					Copyright © 1998-2016 John W. Eaton. Verbatim copying and distribution is permitted in any medium, provided this notice is preserved. 
+					Copyright © 1998-{{ site.time | date: "%Y" }} John W. Eaton.
+                                        This work is licensed under a
+                                        <a rel="license" href="http://creativecommons.org/licenses/by-nd/4.0/">
+                                        Creative Commons Attribution-NoDerivatives 4.0 International License</a>.
+                                        Get the <a href="http://hg.octave.org/web-octave/file/tip">page sources</a>.
 				</small>
 			</div>
 		</div>
--- a/_includes/head.html	Tue Nov 01 00:28:55 2016 +0100
+++ b/_includes/head.html	Tue Nov 01 01:06:10 2016 +0100
@@ -6,19 +6,19 @@
   <title>{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}</title>
   <meta name="description" content="{% if page.excerpt %}{{ page.excerpt | strip_html | strip_newlines | truncate: 160 }}{% else %}{{ site.description }}{% endif %}">
 
-  <link rel="stylesheet" href="{{ "/css/foundation.min.css" | prepend: site.baseurl }}">
-  <link rel="stylesheet" href="{{ "/css/normalize.css" | prepend: site.baseurl }}">
-  <link rel="stylesheet" href="{{ "/css/app.css" | prepend: site.baseurl }}">
-  <link rel="stylesheet" href="{{ "/css/syntax-paraiso.css" | prepend: site.baseurl }}">
+  <link rel="stylesheet" href="{{ "/css/foundation.min.css" | relative_url }}">
+  <link rel="stylesheet" href="{{ "/css/normalize.css" | relative_url }}">
+  <link rel="stylesheet" href="{{ "/css/app.css" | relative_url }}">
+  <link rel="stylesheet" href="{{ "/css/syntax-paraiso.css" | relative_url }}">
   
-  <script src="{{ "/js/vendor/modernizr.js" | prepend: site.baseurl }}"></script>
-  <script src="{{ "/js/vendor/jquery.js" | prepend: site.baseurl }}"></script>
-  <script src="{{ "/js/foundation/foundation.js" | prepend: site.baseurl }}"></script>
-  <script src="{{ "/js/foundation/foundation.reveal.js" | prepend: site.baseurl }}"></script>
-  <script src="{{ "/js/foundation/foundation.topbar.js" | prepend: site.baseurl }}"></script>
-  <script src="{{ "/js/foundation/foundation.tab.js" | prepend: site.baseurl }}"></script>
-  <script src="{{ "/js/foundation/foundation.dropdown.js" | prepend: site.baseurl }}"></script>
+  <script src="{{ "/js/vendor/modernizr.js" | relative_url }}"></script>
+  <script src="{{ "/js/vendor/jquery.js" | relative_url }}"></script>
+  <script src="{{ "/js/foundation/foundation.js" | relative_url }}"></script>
+  <script src="{{ "/js/foundation/foundation.reveal.js" | relative_url }}"></script>
+  <script src="{{ "/js/foundation/foundation.topbar.js" | relative_url }}"></script>
+  <script src="{{ "/js/foundation/foundation.tab.js" | relative_url }}"></script>
+  <script src="{{ "/js/foundation/foundation.dropdown.js" | relative_url }}"></script>
   
-  <link rel="canonical" href="{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}">
-  <link rel="alternate" type="application/rss+xml" title="{{ site.title }}" href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}">
+  <link rel="canonical" href="{{ page.url | replace:'index.html','' | absolute_url }}">
+  <link rel="alternate" type="application/rss+xml" title="{{ site.title }}" href="{{ "/feed.xml" | relative_url }}">
 </head>
--- a/_includes/header.html	Tue Nov 01 00:28:55 2016 +0100
+++ b/_includes/header.html	Tue Nov 01 01:06:10 2016 +0100
@@ -3,8 +3,8 @@
     <ul class="title-area">
       <li class="name">
         <h1>
-          <a href="{{ site.baseurl }}/" style="height:100%">
-            <img src="{{ "/img/logo.png" | prepend: site.baseurl }}" style="width: 32px; height: auto"/>
+          <a href="{{ "/" | relative_url }}" style="height:100%">
+            <img src="{{ "/img/logo.png" | relative_url }}" style="width: 32px; height: auto"/>
             {{ site.title }}
           </a>
         </h1>
@@ -19,7 +19,7 @@
         {% for page in site.pages %}
           {% if page.menu %}
             <li>
-              <a href="{{ page.url | prepend: site.baseurl }}">{{ page.title }}</a>
+              <a href="{{ page.url | relative_url }}">{{ page.title }}</a>
             </li>
           {% endif %}
         {% endfor %}
@@ -29,4 +29,4 @@
       </ul>
     </section>
   </nav>
-</div>
\ No newline at end of file
+</div>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/_layouts/community-news.html	Tue Nov 01 01:06:10 2016 +0100
@@ -0,0 +1,30 @@
+<!--
+
+This is the community news page for Octave.  It is displayed in the
+"Community News" display area of the Octave GUI.  It should not have
+the usual page header that other pages on the Octave web site have.
+The following string must be present for Octave to recognize and
+display this page as the comunity news page:
+
+  this-is-the-gnu-octave-community-news-page
+  community-news-page-serial=6
+
+-->
+
+<!DOCTYPE html>
+<html>
+<head>
+<title>Octave Community News</title>
+<style type="text/css">
+<!--
+body {
+}
+-->
+</style>
+</head>
+<body>
+
+{{ content }}
+
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/_posts/2012-12-31-news-archive.markdown	Tue Nov 01 01:06:10 2016 +0100
@@ -0,0 +1,548 @@
+---
+layout: post
+title:  "News Archive"
+date:   2012-12-31
+categories: news
+---
+
+- August 1, 2012
+
+  <a href="http://jordi.inversethought.com/blog/socis-2012-students/">ESA
+  approved <em>two</em> students</a> to work for Octave under the
+  SOCIS mentorship programme! Congratulations to Wendy Liu and
+  Andrius Sutas who will be working on finishing the Agora website
+  and low-level I/O respectively.
+
+
+- July 18, 2012
+
+  Octave has
+  been <a href="http://sophia.estec.esa.int/socis2012/?q=node/13">accepted
+  into SOCIS</a>. We're now hiring for one position!
+
+
+- July 16, 2012
+
+  <a href="http://www.octave.org/wiki/OctConf_2012">OctConf
+  2012</a> is currently underway.
+
+
+- June 8, 2012
+
+  <a href="http://planet.octave.org">Planet Octave</a> is up,
+  which is a collection of blogs related to Octave. At the moment,
+  it's principally dedicated to the blogs from students working
+  under Google Summer of Code.
+
+
+- May 31, 2012
+
+  Version 3.6.2 has been released and is now available
+  for <a href="download.html">download</a>. Octave 3.6.2 is a
+  minor bug-fixing release. See
+  the <a href="NEWS-3.6.html">NEWS</a> file for a list of
+  user-visible changes since 3.4.
+
+
+- April 23, 2012
+
+  Octave will be participating
+  in <a href="http://www.google-melange.com/gsoc/homepage/google/gsoc2012">Google
+  Summer of Code 2012</a> with three students. Congratulations to
+  Max Brister, Jacob Dawid, and Benjamin Lewis who will be working
+  respectively on JIT compiling, finishing our native GUI, and
+  least squares spectral analysis.
+
+
+- February 22, 2012
+
+  Version 3.6.1 has been released and is now available
+  for <a href="download.html">download</a>.  Octave 3.6.1 is a
+  major new release.  See the <a href="NEWS-3.6.html">NEWS</a>
+  file for a list of user-visible changes.
+
+
+- February 1, 2012
+
+  <a href="http://www.octave.org/wiki/OctConf_2012">OctConf
+  2012</a> will take place during July 16-20 2012. All Octave users and
+  developers invited!
+
+
+- October 10, 2011
+
+  Version 3.4.3 has been released and is now available for ftp.
+  Octave 3.4.3 is a bug fixing release.
+
+
+- August 15, 2011
+
+  Following <a href="http://octave.1599824.n4.nabble.com/Code-Sprint-Results-td3672698.html">the
+  success</a> of the first sprint, we will be having a second sprint on
+  September 3, 2011. The details are again at
+  <a href="sprint.html">Code Sprints</a>.
+
+
+- July 16, 2011
+
+  First Octave code sprint to occur on July 16th, 2011.  Bring
+  your coffee and come mingle with other Octave programmers while
+  we race to beat a coding goal.  See
+  <a href="sprint.html">Code Sprints</a> for all the
+  details.
+
+
+- June 24, 2011
+
+  Version 3.4.2 has been released and is now available for ftp.
+  Octave 3.4.2 fixes some minor installation problems that affected
+  version 3.4.1.  See the [NEWS]({{ "NEWS-3.4.html" | absolute_url }}) file
+  for a list of changes.
+
+
+- June 15, 2011
+
+  Version 3.4.1 has been released and is now available for ftp.
+  Octave 3.4.1 is primarily a bug fixing release.  See the
+  [NEWS]({{ "NEWS-3.4.html" | absolute_url }}) file for a list of changes
+  since the previous release.
+
+
+- February 8, 2011
+
+  Version 3.4.0 has been released and is now available for ftp.
+  Octave 3.4.0 is a major new release.  See the
+  [NEWS]({{ "NEWS-3.4.html" | absolute_url }}) file for a list of
+  user-visible changes.
+
+
+- November 19, 2010
+
+  A new snapshot of the current development version of Octave is
+  available for ftp (3.3.54).  You should only be using this version if you are
+  interested in testing the latest features and don't mind hitting the
+  occasional bug.  Note that this snapshot is available from
+  <tt>alpha.gnu.org</tt>, not <tt>ftp.octave.org</tt>
+
+
+- October 19, 2010
+
+  A new snapshot of the current development version of Octave is
+  available for ftp (3.3.53).  You should only be using this version if you are
+  interested in testing the latest features and don't mind hitting the
+  occasional bug.
+
+
+- August 1, 2010
+
+  A new snapshot of the current development version of Octave is
+  available for ftp (3.3.52).  You should only be using this version if you are
+  interested in testing the latest features and don't mind hitting the
+  occasional bug.
+
+
+- March 24, 2010
+
+  A new snapshot of the current development version of Octave is
+  available for ftp (3.3.51).  You should only be using this version if you are
+  interested in testing the latest features and don't mind hitting the
+  occasional bug.
+
+
+- March 24, 2010
+
+  We are now using the [bugs.octave.org](http://bugs.octave.org) bug tracker
+  to manage bug reports instead of the bug@octave.org mailing
+  list.  For now, the list will continue to function, but you are
+  strongly encouraged to use the tracker instead.
+
+
+- January 28, 2010
+
+  Version 3.2.4 has been released and is now available for ftp.
+  Octave 3.2.4 is a bug-fixing release
+  [NEWS]({{ "NEWS-3.2.html" | absolute_url }}) file for a list of
+  user-visible changes in the 3.2.x series.
+
+
+- September 21, 2009
+
+  Version 3.2.3 has been released and is now available for ftp.
+  Octave 3.2.3 is a bug-fixing release
+  [NEWS]({{ "NEWS-3.2.html" | absolute_url }}) file for a list of
+  user-visible changes in the 3.2.x series.
+
+
+- September 12, 2009
+
+  A new snapshot of the current development version of Octave is
+  available for ftp (3.3.50).  You should only be using this version if you are
+  interested in testing the latest features and don't mind hitting the
+  occasional bug.
+
+
+- July 22, 2009
+
+  Version 3.2.2 has been released and is now available for ftp.
+  Octave 3.2.2 is a bug-fixing release
+  [NEWS]({{ "NEWS-3.2.html" | absolute_url }}) file for a list of
+  user-visible changes in the 3.2.x series.
+
+
+- June 6, 2009
+
+  Version 3.2.0 has been released and is now available for ftp.
+  Octave 3.2.0 is a major new release.  See the
+  [NEWS]({{ "NEWS-3.2.html" | absolute_url }}) file for a list of
+  user-visible changes.
+
+
+- April 8, 2009
+
+  Version 3.0.5 has been released and is now available for ftp.
+  Octave 3.0.5 fixes a serious file reading bug that was discovered just
+  after the 3.0.4 release.
+
+
+- April 2, 2009
+
+  Version 3.0.4 has been released and is now available for ftp.
+  Octave 3.0.4 is a bug-fixing release.  Most bugs reported since the
+  release of version 3.0.3 have been fixed.
+  Please note that Octave 3.0 is significantly different from Octave
+  2.1.x, particularly with regard to graphics, path handling, and
+  built-in variables.  Please read the [NEWS]({{ "NEWS-3.html" | absolute_url }}) file.
+
+
+- March 26, 2009
+
+  A new snapshot of the current development version of Octave is
+  available for ftp (3.1.55).  You should only be using this version if you are
+  interested in testing the latest features and don't mind hitting the
+  occasional bug.
+
+
+- March 7, 2009
+
+  A new snapshot of the current development version of Octave is
+  available for ftp (3.1.54).  You should only be using this version if you are
+  interested in testing the latest features and don't mind hitting the
+  occasional bug.
+
+
+- February 9, 2009
+
+  A new snapshot of the current development version of Octave is
+  available for ftp.  You should only be using this version if you are
+  interested in testing the latest features and don't mind hitting the
+  occasional bug.
+
+
+- October 10, 2008
+
+  Version 3.0.3 has been released and is now available for ftp.
+  Octave 3.0.3 is a bug-fixing release.  Most bugs reported since the
+  release of version 3.0.2 have been fixed.
+  Please note that Octave 3.0 is significantly different from Octave
+  2.1.x, particularly with regard to graphics, path handling, and
+  built-in variables.  Please read the [NEWS]({{ "NEWS-3.html" | absolute_url }}) file.
+
+
+- August 14, 2008
+
+  Version 3.0.2 has been released and is now available for ftp.
+  Octave 3.0.2 is a bug-fixing release.  Most bugs reported since the
+  release of version 3.0.1 have been fixed.
+  Please note that Octave 3.0 is significantly different from Octave
+  2.1.x, particularly with regard to graphics, path handling, and
+  built-in variables.  Please read the [NEWS]({{ "NEWS-3.html" | absolute_url }}) file.
+
+
+- April 21, 2008
+
+  Version 3.0.1 has been released and is now available for ftp.
+  Octave 3.0.1 is a bug-fixing release.  Most bugs reported since the
+  release of version 3.0.0 have been fixed.
+  Please note that Octave 3.0 is significantly different from Octave
+  2.1.x, particularly with regard to graphics, path handling, and
+  built-in variables.  Please read the [NEWS]({{ "NEWS-3.html" | absolute_url }}) file.
+
+
+- December 21, 2007
+
+  Version 3.0.0 has been released and is now available for ftp.
+  Please note that Octave 3.0 is significantly different from Octave
+  2.1.x, particularly with regard to graphics, path handling, and
+  built-in variables.  Please read the [NEWS]({{ "NEWS-3.html" | absolute_url }}) file.
+
+
+- December 11, 2007
+
+  Version 2.9.19 is now available for ftp and is the new
+  "testing" (also "recommended") version.  As noted on the download
+  page, 2.9.19 is a pre-release version of Octave 3.0.  It is
+  significantly different from Octave 2.1.x, particularly with regard to
+  graphics, path handling, and built-in variables.  Please read the
+  [NEWS]({{ "NEWS-3.html" | absolute_url }}) file.
+  [See this post.](http://lists.gnu.org/archive/html/octave-maintainers/2007-12/msg00153.html)
+
+
+- December 5, 2007
+
+  Version 2.9.18 is now available for ftp and is the new
+  "testing" (also "recommended") version.  As noted on the download
+  page, 2.9.18 is a pre-release version of Octave 3.0.  It is
+  significantly different from Octave 2.1.x, particularly with regard to
+  graphics, path handling, and built-in variables.  Please read the
+  [NEWS]({{ "NEWS-3.html" | absolute_url }}) file.
+  [See this post.](http://lists.gnu.org/archive/html/octave-maintainers/2007-12/msg00087.html)
+
+
+- November 10, 2007
+
+  Version 2.9.17 is now available for ftp and is the new
+  "testing" (also "recommended") version.  As noted on the download
+  page, 2.9.17 is a pre-release version of Octave 3.0.  It is
+  significantly different from Octave 2.1.x, particularly with regard to
+  graphics, path handling, and built-in variables.  Please read the
+  [NEWS]({{ "NEWS-3.html" | absolute_url }}) file.
+  [See this post.](http://lists.gnu.org/archive/html/octave-maintainers/2007-11/msg00192.html)
+
+
+- October 31, 2007
+
+  Version 2.9.16 is now available for ftp and is the new
+  "testing" (also "recommended") version.  As noted on the download
+  page, 2.9.16 is a pre-release version of Octave 3.0.  It is
+  significantly different from Octave 2.1.x, particularly with regard to
+  graphics, path handling, and built-in variables.  Please read the
+  [NEWS]({{ "NEWS-3.html" | absolute_url }}) file.
+  [See this post.](http://lists.gnu.org/archive/html/octave-maintainers/2007-10/msg00517.html)
+
+
+- October 13, 2007
+
+  Version 2.9.15 is now available for ftp and is the new
+  "testing" (also "recommended") version.  As noted on the download
+  page, 2.9.15 is a pre-release version of Octave 3.0.  It is
+  significantly different from Octave 2.1.x, particularly with regard to
+  graphics, path handling, and built-in variables.  Please read the
+  [NEWS]({{ "NEWS-3.html" | absolute_url }}) file.
+  [See this post.](http://lists.gnu.org/archive/html/octave-maintainers/2007-10/msg00224.html)
+
+
+- September 17, 2007
+
+  Version 2.9.14 is now available for ftp and is the new
+  "testing" (also "recommended") version.  As noted on the download
+  page, 2.9.14 is a pre-release version of Octave 3.0.  It is
+  significantly different from Octave 2.1.x, particularly with regard to
+  graphics, path handling, and built-in variables.  Please read the
+  [NEWS]({{ "NEWS-3.html" | absolute_url }}) file.
+  [See this post.](http://lists.gnu.org/archive/html/octave-maintainers/2007-09/msg00190.html)
+
+
+- July 25, 2007
+
+  Version 2.9.13 is now available for ftp and is the new
+  "testing" (also "recommended") version.  As noted on the download
+  page, 2.9.13 is a pre-release version of Octave 3.0.  It is
+  significantly different from Octave 2.1.x, particularly with regard to
+  graphics, path handling, and built-in variables.  Please read the
+  [NEWS]({{ "NEWS-3.html" | absolute_url }}) file.
+  [See this post.](http://lists.gnu.org/archive/html/octave-maintainers/2007-07/msg00134.html)
+
+
+- May 23, 2007
+
+  Version 2.9.12 is now available for ftp and is the new
+  "testing" (also "recommended") version.  As noted on the download
+  page, 2.9.12 is a pre-release version of Octave 3.0.  It is
+  significantly different from Octave 2.1.x, particularly with regard to
+  graphics, path handling, and built-in variables.  Please read the
+  [NEWS]({{ "NEWS-3.html" | absolute_url }}) file.
+  [See this post.](http://lists.gnu.org/archive/html/octave-maintainers/2007-05/msg00190.html)
+
+
+- May 22, 2007
+
+  Version 2.9.11 is now available for ftp and is the new
+  "testing" (also "recommended") version.  As noted on the download
+  page, 2.9.11 is a pre-release version of Octave 3.0.  It is
+  significantly different from Octave 2.1.x, particularly with regard to
+  graphics, path handling, and built-in variables.  Please read the
+  [NEWS]({{ "NEWS-3.html" | absolute_url }}) file.
+  [See this post.](http://lists.gnu.org/archive/html/octave-maintainers/2007-05/msg00173.html)
+
+
+- March 27, 2007
+
+  Version 2.9.10 is now available for ftp.
+  [See this post.](http://lists.gnu.org/archive/html/octave-maintainers/2007-03/msg00275.html)
+
+- March 1, 2007
+
+  Thanks to Bob Weigel and Nabble, it is now possible to
+  [search](www.nabble.com/Octave-f1895.html) the
+  contents of the Octave mailing lists all the way back to the beginning
+  of time (around 1992).
+
+
+- December 7, 2006
+
+  A new graphics branch of the code is now in the works to keep all
+  graphics data in Octave to improve compatibility with Matlab and
+  facilitate newer graphics back-ends.
+  [See this post.](http://lists.gnu.org/archive/html/octave-maintainers/2006-12/msg00054.html)
+
+
+- October 2, 2006
+
+  Version 2.9.9 is now available for ftp.
+  [See this post.](http://lists.gnu.org/archive/html/octave-maintainers/2006-10/msg00015.html)
+
+
+- August 24, 2006
+
+  Version 2.9.8 is now available for ftp.
+  [See this post.](http://lists.gnu.org/archive/html/octave-maintainers/2006-08/msg00056.html)
+
+
+- July 28, 2006
+
+  Version 2.9.7 is now available for ftp.
+  [See this post.](http://lists.gnu.org/archive/html/octave-maintainers/2006-07/msg00040.html)
+
+
+- July 27, 2006
+
+  Fairly complete support for Matlab's MEX interface has been
+  added to the Octave CVS archive and will be part of the 2.9.7
+  shapshot.  Please
+  [See this post.](http://lists.gnu.org/archive/html/octave-maintainers/2006-07/msg00033.html)
+  for more details.
+
+
+- June 29, 2006
+
+  Please
+  [See this post.](http://lists.gnu.org/archive/html/octave-maintainers/2006-06/msg00053.html)
+  if you are having trouble compiling Octave 2.9.6 with GCC 3.x.
+  After applying the patch, you'll need to run autogen.sh and configure
+  again.  This means you'll need to have a recent version of
+  autoconf installed.  Or, you can upgrade to GCC 4.x or you can wait for
+  2.9.7.  So many options!
+
+
+- June 9, 2006
+
+  Version 2.9.6 is now available for ftp.
+  [See this post.](http://lists.gnu.org/archive/html/octave-maintainers/2006-06/msg00024.html)
+
+
+- May 26, 2006
+
+  Function file cacheing has been improved with hopefully major
+  speedups when calling m-file functions.
+  [See this post.](http://lists.gnu.org/archive/html/octave-maintainers/2006-05/msg00204.html)
+
+
+- May 21, 2006
+
+  Octave-forge is being cleaned up by moving core functions into
+  the main Octave distribution.
+  [See this post.](http://lists.gnu.org/archive/html/octave-maintainers/2006-05/msg00169.html)
+
+
+- May 11, 2006
+
+  Path manipulation was significantly cleaned up.  Now instead of
+  manipulating the <code>LOADPATH</code> variable, you can use the
+  <code>addpath</code>, <code>rmpath</code>, and <code>path</code>
+  functions.
+  [See this post.](http://lists.gnu.org/archive/html/octave-maintainers/2006-05/msg00122.html)
+
+
+- May 3, 2006
+
+  To enable XML reading, mat2cell was developed along
+  with significantly more efficient versions of regexp and regexprep.
+  [See this post.](http://lists.gnu.org/archive/html/octave-maintainers/2006-05/msg00033.html)
+
+
+- May 2, 2006
+
+  All warn_* built-in variables were removed and replaced by warning
+  identifiers that may be used with the warning function.  For example,
+  <code>warn_divide_by_zero = false;</code> would now be
+  <code>warning ("off", "Octave:divide-by-zero");</code>.
+  [See this post.](http://lists.gnu.org/archive/html/octave-maintainers/2006-05/msg00019.html)
+
+
+- March 23, 2006
+
+  Versions 2.1.73 and 2.9.5 are now available for ftp.
+
+
+- November 11, 2005
+
+  Versions 2.1.72 and 2.9.4 are now available for ftp.
+
+
+- May 18, 2005
+
+  Version 2.9.3 is now available for ftp.
+
+
+- May 5, 2005
+
+  Version 2.1.70 is now available for ftp.
+
+
+- April 22, 2005
+
+  Version 2.9.2 is now available for ftp.
+
+
+- March 29, 2005
+
+  Version 2.1.69 is now available for ftp.
+
+
+- March 27, 2005
+
+  Version 2.1.68 is now available for ftp.
+  Version 2.9.1 is now available for ftp.
+
+
+- March 15, 2005
+
+  Version 2.9.0 is now available for ftp.  This snapshot is the first
+  in the series leading to Octave 3.0.
+
+
+- March 4, 2005
+
+  Version 2.1.67 is now available for ftp.
+
+
+- February 24, 2005
+
+  Version 2.1.66 is now available for ftp.
+
+
+- February 18, 2005
+
+  Version 2.1.65 is now available for ftp.
+
+
+- December 3, 2004
+
+  Version 2.1.64 is now available for ftp.
+
+
+- November 17, 2004
+
+  Version 2.1.63 is now available for ftp.  The CVS archive has been
+  split to allow work to proceed toward Octave 3.0 while also
+  stabilizing a 2.1.x version.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/_posts/2013-01-28-oct-conf-milano.markdown	Tue Nov 01 01:06:10 2016 +0100
@@ -0,0 +1,14 @@
+---
+layout: post
+title:  "OctConf 2013"
+date:   2013-01-28
+categories: news
+---
+
+[OctConf 2013][1] will take place in Milano, Italy during June 24-26, 2013.
+All Octave users, developers, and enthusiasts are welcome to attend!
+
+Registrations for OctConf 2013 are [now open][2]!
+
+[1]: http://wiki.octave.org/OctConf_2013
+[2]: http://www2.mate.polimi.it/ocs/?cf=42
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/_posts/2013-02-21-octave-3.6.4-released.markdown	Tue Nov 01 01:06:10 2016 +0100
@@ -0,0 +1,13 @@
+---
+layout: post
+title:  "GNU Octave 3.6.4 Released"
+date:   2013-02-21
+categories: news
+---
+
+Version 3.6.4 has been released and is now available for [download][1].
+Octave 3.6.4 is a minor bug-fixing release.
+See the [NEWS][2] file for a list of user-visible changes since 3.4.
+
+[1]: {{ "download.html" | absolute_url }}
+[2]: {{ "NEWS-3.6.html" | absolute_url }}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/_posts/2013-12-31-octave-3.8.0-released.markdown	Tue Nov 01 01:06:10 2016 +0100
@@ -0,0 +1,13 @@
+---
+layout: post
+title:  "GNU Octave 3.8.0 Released"
+date:   2013-12-31
+categories: news
+---
+
+Version 3.8.0 has been released and is now available for [download][1].
+Octave 3.8.0 is a major new release.
+See the [NEWS][2] file for a list of user-visible changes.
+
+[1]: {{ "download.html" | absolute_url }}
+[2]: {{ "NEWS-3.8.html" | absolute_url }}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/_posts/2014-03-07-google-summer-of-code.markdown	Tue Nov 01 01:06:10 2016 +0100
@@ -0,0 +1,21 @@
+---
+layout: post
+title:  "Google Summer of Code"
+date:   2014-02-26
+categories: news
+---
+
+Octave was selected as a [mentoring organization][1] for the
+[Google Summer of Code][2] program for 2014.
+We have participated in the past as part of the [GNU Project][3]
+but this is the first year that we have been a mentoring organization.
+
+Interested students who meet the [requirements][4] listed on the GSoC
+web site are encouraged to apply (see the Students and Eligibility section).
+Please also note the [guidelines for Octave][5].
+
+[1]: http://www.google-melange.com/gsoc/org2/google/gsoc2014/octave
+[2]: http://www.google-melange.com/gsoc/homepage/google/gsoc2014
+[3]: https://www.gnu.org/
+[4]: http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2014/help_page
+[5]: http://wiki.octave.org/GSoC_Project_Ideas#Steps_Toward_a_Successful_Application
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/_posts/2014-03-07-octave-3.8.1-released.markdown	Tue Nov 01 01:06:10 2016 +0100
@@ -0,0 +1,13 @@
+---
+layout: post
+title:  "GNU Octave 3.8.1 Released"
+date:   2014-03-04
+categories: news
+---
+
+Version 3.8.1 has been released and is now available for [download][1].
+Octave 3.8.1 is a major new release.
+See the [NEWS][2] file for a list of user-visible changes.
+
+[1]: {{ "download.html" | absolute_url }}
+[2]: {{ "NEWS-3.8.html" | absolute_url }}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/_posts/2014-09-22-oct-conf-montreal.markdown	Tue Nov 01 01:06:10 2016 +0100
@@ -0,0 +1,11 @@
+---
+layout: post
+title:  "OctConf 2014"
+date:   2014-09-22
+categories: news
+---
+
+The presentation slides are available at
+[http://wiki.octave.org/OctConf_2014](http://wiki.octave.org/OctConf_2014).
+
+![OctConf 2015]({{ "/img/octconf-2014.png" | absolute_url}})
--- a/_posts/2015-05-29-octave-4.0.0-released.markdown	Tue Nov 01 00:28:55 2016 +0100
+++ b/_posts/2015-05-29-octave-4.0.0-released.markdown	Tue Nov 01 01:06:10 2016 +0100
@@ -2,24 +2,25 @@
 layout: post
 title:  "GNU Octave 4.0.0 Released"
 date:   2015-05-29
-categories: releases
+categories: news
 ---
 
-Version 4.0.0 has been released and is now available for download.
-Octave 4.0 is a major new release with many new features:
+Octave version 4.0.0 has been released and is now available for [download][1].
+Some of the many new features of this major release are:
 
 - including a graphical user interface,
 - support for classdef object-oriented programming,
 - better compatibility with Matlab, and
 - many new and improved functions.
 
-An official [Windows binary installer][] is available.
+An official [Windows binary installer][2] is available.
 
-A list of important user-visible changes is available [here][news],
-by selecting the Release Notes item in the News menu of the GUI,
-or by typing `news` at the Octave command prompt.
+A list of important user-visible changes is available by selecting the
+[Release Notes][3] item in the News menu of the GUI or by typing `news`
+at the Octave command prompt.
 
 Thanks to the many people who contributed to this release!
 
-[news]: http://octave.org/NEWS-4.0.html
-[Windows binary installer]: ftp://ftp.gnu.org/gnu/octave/windows/octave-4.0.0_0-installer.exe
+[1]: {{ "download.html" | absolute_url }}
+[2]: ftp://ftp.gnu.org/gnu/octave/windows/octave-4.0.0_0-installer.exe
+[3]: {{ "NEWS-4.0.html" | absolute_url }}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/_posts/2015-09-23-oct-conf-darmstadt.markdown	Tue Nov 01 01:06:10 2016 +0100
@@ -0,0 +1,11 @@
+---
+layout: post
+title:  "OctConf 2015"
+date:   2015-09-23
+categories: news
+---
+
+The presentation slides are available at
+[http://wiki.octave.org/OctConf_2015](http://wiki.octave.org/OctConf_2015).
+
+![OctConf 2015]({{ "/img/octconf-2015.png" | absolute_url}})
--- a/_posts/2016-03-23-octave-4.0.1-released.markdown	Tue Nov 01 00:28:55 2016 +0100
+++ b/_posts/2016-03-23-octave-4.0.1-released.markdown	Tue Nov 01 01:06:10 2016 +0100
@@ -2,11 +2,10 @@
 layout: post
 title:  "GNU Octave 4.0.1 Released"
 date:   2016-03-23
-categories: releases
+categories: news
 ---
 
-Version 4.0.1 has been released and is now available for [download][].
-Octave 4.0.1 is a [bug fixing release][].
+Octave version 4.0.1 has been released and is now available for [download][1].
 
 Octave 4.0, released in May 2015,
 was a major new version with many new features,
@@ -15,5 +14,150 @@
 better compatibility with Matlab,
 and many new and improved functions.
 
-[download]: http://www.octave.org/download.html
-[bug fixing release]: http://www.octave.org/fixes-4-0-1.html
+This is a bug fixing release:
+
+- Allow strsplit to use '+' as a delimiter ([bug #47403](https://savannah.gnu.org/bugs/?47403)).
+- svds.m: Special handling for case of sigma=0 ([bug #46683](https://savannah.gnu.org/bugs/?46683)).
+- patch.m: Fix typo in docstring.
+- Fix splines and remove unnecessary calculations ([bug #47013](https://savannah.gnu.org/bugs/?47013))
+- doc: Use consistent spacing for memory/storage sizes
+- fix printf regression ([bug #47192](https://savannah.gnu.org/bugs/?47192))
+- Invoke correct version of octave-cli from main driver program
+- For gnuplot 5.x, add the "color" option to the postscript terminal.
+- Avoid overflow while reshaping large sparse matrices ([bug #42850](https://savannah.gnu.org/bugs/?42850)).
+- Fix memory corruption allocating to sparse arrays ([bug #42825](https://savannah.gnu.org/bugs/?42825)).
+- `__osmesa_print__.cc`: Include system headers with <file.h> syntax.
+- Fix compilation error when building with OSMesa on Mac platforms ([patch #8761](https://savannah.gnu.org/patch/?8761))
+- Disable char/int8_t function overloads where not permitted ([bug #45411](https://savannah.gnu.org/bugs/?45411))
+- Fix cut/paste error in rande documentation ([bug #47097](https://savannah.gnu.org/bugs/?47097)).
+- Fix regressions caused by ismatrix definition change (partial fix [bug #47036](https://savannah.gnu.org/bugs/?47036)).
+- doc: Update copyright date in octave.texi (partial fix [bug #47058](https://savannah.gnu.org/bugs/?47058)).
+- Fix regressions caused by ismatrix definition change (partial fix [bug #47036](https://savannah.gnu.org/bugs/?47036)).
+- Fix regression for coordinate transforms on 3-D arrays (partial fix [bug #47036](https://savannah.gnu.org/bugs/?47036)).
+- Fix regressions caused by ismatrix definition change (partial fix [bug #47036](https://savannah.gnu.org/bugs/?47036)).
+- doc: Correct example errobar code and plot ([bug #46972](https://savannah.gnu.org/bugs/?46972)).
+- `__getlegenddata__.m`: fix handling of multiple child elements ([bug #46835](https://savannah.gnu.org/bugs/?46835))
+- doc: fix spelling of "unknown".
+- svds.m: Modify BIST test for sigma=0 to reliably pass.
+- fzero.m: Correctly choose tolerance (eps) based on class of fun and X0 ([bug #46658](https://savannah.gnu.org/bugs/?46658)).
+- maint: Add @SizeTester files to build system.
+- etc/icons/octave.desktop.in: Add Keywords entry and field code to Exec.
+- doc: fix spelling of "occurred".
+- Remove spurious tick labels occuring when setting ticks and removing tick labels.
+- Fix behavior of warning ("error") call ([bug #45753](https://savannah.gnu.org/bugs/?45753)).
+- doc: Start help text with " -- ", not " -- : ".
+- Fixed isequal for comparison of objects with overridden size ([bug #44334](https://savannah.gnu.org/bugs/?44334))
+- Fix compilation of classdef with the clang compiler ([bug #41178](https://savannah.gnu.org/bugs/?41178))
+- Added tag rc-4-0-1-1 for changeset 20b17dda0e0c
+- doc: Fix incorrect description of Hessenberg decomposition ([bug #46622](https://savannah.gnu.org/bugs/?46622)).
+- Rewrite a8ee668e7fd7 to use #if defined rather than #ifdef.
+- Fix kbhit and pause on Windows systems.
+- set all lexical_feedback variables in init function ([bug #46522](https://savannah.gnu.org/bugs/?46522))
+- randi.m: Clean up function.
+- randi.m: corrected warning policy for int and single ranges.
+- Tweak GUI ToolTip strings for consistency.
+- Update German translation file de_DE.ts.
+- Stop segfault when find() called with 6 outputs ([bug #42424](https://savannah.gnu.org/bugs/?42424)).
+- lscov.m: Increase tolerance of BIST test to 2*eps.
+- doc: Clarify how if statement determines true or false for a matrix input.
+- textread.m, textscan.m: properly process single-quoted endofline parameter ([bug #46477](https://savannah.gnu.org/bugs/?46477))
+- Fix rotated graphics when printing through ghostscript ([bug #46435](https://savannah.gnu.org/bugs/?46435)).
+- drawnow: add a delay to let the GUI thread lock the mutex when printing ([bug #44463](https://savannah.gnu.org/bugs/?44463))
+- check whether filter is active or not when history widget becomes visible
+- fix hanging of gui when focusing the editor (regression from cset 802dc52d4d46)
+- quadv.m: Clarify that tolerance is absolute in docstring.
+- Fix segfault with 'dbclear all' ([bug #41843](https://savannah.gnu.org/bugs/?41843)).
+- intro.txi change a to A to match the previous comments
+- Force left-to-right alignment for the whole GUI ([bug #46204](https://savannah.gnu.org/bugs/?46204))
+- validateattributes.m: fix typo on documentation ([bug #46328](https://savannah.gnu.org/bugs/?46328))
+- doc: Fix typo in short-circuit operators documentation ([bug #46280](https://savannah.gnu.org/bugs/?46280)).
+- datevec.m: Properly handle FFF millisecond code ([bug #46171](https://savannah.gnu.org/bugs/?46171)).
+- build: Add check for sys/stropts.h system header file
+- libinterp/dldfcn/module-files: Sort the list of loadable module files.
+- Fix issue with gnuplot, subplot, and 2 y-axes ([bug #45822](https://savannah.gnu.org/bugs/?45822)).
+- plot.m: use actual property names in the description FMT argument ([bug #46240](https://savannah.gnu.org/bugs/?46240))
+- normrnd.m: Return correct result for vector case when std = 0 ([bug #46238](https://savannah.gnu.org/bugs/?46238)).
+- prevent doc browser from searching for an empty string (bug 46227)
+- improve focus detection of gui ([bug #45306](https://savannah.gnu.org/bugs/?45306))
+- Fix segfault when complex double matrix calls ZGETRF ([bug #45577](https://savannah.gnu.org/bugs/?45577)).
+- Add uiXXXX documentation ([bug #46076](https://savannah.gnu.org/bugs/?46076))
+- quantile.m: Fix operation along a singleton dimension ([bug #45455](https://savannah.gnu.org/bugs/?45455)).
+- doc: Add explanation of ':' optional input to numel().
+- doc: Cuddle parentheses in example code of for loop.
+- data.cc: Add @w{} around @code segments in docstrings to prevent line breaks.
+- `__gnuplot_drawnow__.m`: Use "screenpixelsperinch" instead of constant value ([bug #46122](https://savannah.gnu.org/bugs/?46122)).
+- methods.m: try Java class names if getMethods fails on Java objects ([bug #46010](https://savannah.gnu.org/bugs/?46010))
+- textread.m, textscan.m: always remove headerlines args before invoking strread ([bug #46080](https://savannah.gnu.org/bugs/?46080))
+- Include stdint.h in mex.h file (Bug #46062)
+- Handle hggroup objects "buttondownfcn" when children are clicked ([bug #45621](https://savannah.gnu.org/bugs/?45621))
+- Fix selection of one pixel high(wide) images ([bug #46049](https://savannah.gnu.org/bugs/?46049))
+- annotation.m: document the "string" property of textbox and textarrow annotations ([bug #46036](https://savannah.gnu.org/bugs/?46036))
+- mkoctfile: Apply default C++ compiler flags when linking oct-file ([bug #45280](https://savannah.gnu.org/bugs/?45280))
+- Use backslash as windows file separator for canonicalize_file_name ([bug #45816](https://savannah.gnu.org/bugs/?45816)).
+- maint: Complete deprecation of gmap40 colormap.
+- Generate correct ezplot for 2-input functions ([bug #46004](https://savannah.gnu.org/bugs/?46004)).
+- Fix regression in displayed error message for nargin and nargout.
+- Fix typo in str2func docstring.
+- doc: Make excplicit that asctime and ctime values end in a newline ([bug #45976](https://savannah.gnu.org/bugs/?45976))
+- doc: remove section about broadcasting warnings which no longer exists.
+- Initialize interpreter correctly with script and --traditional ([bug #45921](https://savannah.gnu.org/bugs/?45921))
+- do not leave debug modus when entering a command at debug prompt ([bug #45737](https://savannah.gnu.org/bugs/?45737))
+- `__finish__.m`: Change from function to script to stay in base workspace ([bug #45869](https://savannah.gnu.org/bugs/?45869)).
+- Don't put default xtick vector size in documentation ([bug #45725](https://savannah.gnu.org/bugs/?45725)).
+- range.tst: Add tests for [bug #45739](https://savannah.gnu.org/bugs/?45739).
+- Fix 'descending' sort of Range objects ([bug #45739](https://savannah.gnu.org/bugs/?45739)).
+- strread.m: clarify delimiter and whitespace usage ([bug #45712](https://savannah.gnu.org/bugs/?45712))
+- GUI-Find: keep focus on Find What and select all text when dialog opens
+- strread.m: properly preprocess all forms of string format specifier ([bug #45712](https://savannah.gnu.org/bugs/?45712))
+- doc: Clarify that ARCH argument to fread overrides ARCH arg to fopen.
+- strfunc: Document function does not accept anonymous functions (partial fix [bug #45682](https://savannah.gnu.org/bugs/?45682)).
+- doc: Add info about single letter codes for fread, fopen IEEE format.
+- doc: Change docstrings to use 'IEEE 754' rather than 'IEEE-754'.
+- Fix hang when using errorbar with empty dataset ([bug #45554](https://savannah.gnu.org/bugs/?45554)).
+- doc: Clarify behavior of length() function ([bug #45611](https://savannah.gnu.org/bugs/?45611)).
+- show history context menu only for clicks on entries
+- Fix missing sorting of the workspace view directly after start-up
+- Allow sorting columns in workspace view ([bug #45448](https://savannah.gnu.org/bugs/?45448))
+- Pass all fields in face/vertex structure through to patch() ([bug #45593](https://savannah.gnu.org/bugs/?45593)).
+- polar.m: Display plot titles on polar plots ([bug #45514](https://savannah.gnu.org/bugs/?45514)).
+- ellipke.m: Use correct definition of elliptic integral in documentation ([bug #45522](https://savannah.gnu.org/bugs/?45522)).
+- build: Sort generated PKG_ADD contents consistently
+- build: Use texinfo.tex from gnulib instead of manually imported version
+- doc: Fix backslash characters in docstrings
+- install.txi: Add warning about incorrect behavior of reference BLAS library.
+- unpack.m: Stop hang when unpacking on to existing filename ([bug #45331](https://savannah.gnu.org/bugs/?45331)).
+- Allow NEWS to be displayed properly in QTextBrowser ([bug #45396](https://savannah.gnu.org/bugs/?45396))
+- Fix segfault when '[]' used for row_vector_property.
+- fix crash when selecting an image ([bug #45372](https://savannah.gnu.org/bugs/?45372))
+- qt toolkit: set keyboard focus in canvas ([bug #44832](https://savannah.gnu.org/bugs/?44832))
+- Clean up MEX example code.
+- Change mxCreateNumericArray to be Matlab compatible for ndims < 2 ([bug #45319](https://savannah.gnu.org/bugs/?45319)).
+- Fix conversion from string cell array into java's String[] ([bug #45290](https://savannah.gnu.org/bugs/?45290))
+- Don't run wizard in --no-gui mode (see http://octave.1599824.n4.nabble.com/Octave-wants-to-run-startup-configuration-wizard-in-no-gui-mode-tp4670884.html)
+- Fix load/save of integers with -hdf5 ([bug #45225](https://savannah.gnu.org/bugs/?45225))
+- io.tst: Add tests for printf hex or octal conversion on string inputs
+- ellipke.m: Modify to accept row vectors ([bug #45283](https://savannah.gnu.org/bugs/?45283)).
+- Return correct hex value for printf when used with string inputs ([bug #45263](https://savannah.gnu.org/bugs/?45263)).
+- run.m: Return to original directory on Windows ([bug #45231](https://savannah.gnu.org/bugs/?45231)).
+- Convert double Octave vectors to double Java vectors ([bug #45264](https://savannah.gnu.org/bugs/?45264)).
+- Also load settings and translations in --no-gui mode ([bug #44222](https://savannah.gnu.org/bugs/?44222) and [bug #45199](https://savannah.gnu.org/bugs/?45199))
+- Avoid crash when trying to annotate an empty figure ([bug #45241](https://savannah.gnu.org/bugs/?45241))
+- Allow interactive annotations in other figures than the currentfigure.
+- Allow copying a figure to clipboard even in --no-gui mode ([bug #44886](https://savannah.gnu.org/bugs/?44886))
+- Allow saving/copying other figures than the currentfigure ([bug #45226](https://savannah.gnu.org/bugs/?45226))
+- linsolve.m: Fix regression when calling linsolve with 2 arguments ([bug #45212](https://savannah.gnu.org/bugs/?45212))
+- fftshift.m, ifftshift.m: Restore support for N-dimensional arrays ([bug #45207](https://savannah.gnu.org/bugs/?45207))
+
+
+The above list was generated using the following command and very little
+manual post-processing:
+
+{% highlight bash %}
+hg log -r "release-4-0-0:release-4-0-1" -b stable \
+| grep "summary:" | nl | sort -rn | cut -f 2- \
+| sed 's/summary:\s*/- /' \
+| sed 's/\(bug #\)\([0-9]*\)/[\1\2](https:\/\/savannah.gnu.org\/bugs\/?\2)/' \
+| sed 's/\(patch #\)\([0-9]*\)/[\1\2](https:\/\/savannah.gnu.org\/patch\/?\2)/'
+{% endhighlight %}
+
+[1]: {{ "download.html" | absolute_url }}
--- a/_posts/2016-07-02-octave-4.0.3-released.markdown	Tue Nov 01 00:28:55 2016 +0100
+++ b/_posts/2016-07-02-octave-4.0.3-released.markdown	Tue Nov 01 01:06:10 2016 +0100
@@ -2,14 +2,53 @@
 layout: post
 title:  "GNU Octave 4.0.3 Released"
 date:   2016-07-02
-categories: releases
+categories: news
 ---
 
-Octave Version 4.0.3 has been released and is now available for [download][].
-This version is another [bug fixing release][].
+Octave Version 4.0.3 has been released and is now available for [download][1].
+An official [Windows binary installer][2] is also available.
+
+This version is another bug fixing release:
 
-An official [Windows binary installer][] is also available.
+- doc: clarify differences between atan and atan2 ([bug #48178](https://savannah.gnu.org/bugs/?48178))
+- doc: delete mention of unsupported syntax for looping over structs ([bug #48064](https://savannah.gnu.org/bugs/?48064))
+- ver.m: return empty struct for unknown package ([bug #48235](https://savannah.gnu.org/bugs/?48235)).
+- Update gnulib subrepo for texinfo formatting fixes ([bug #48001](https://savannah.gnu.org/bugs/?48001))
+- Fix typos in Java conversion of 32 and 64 bit integers ([bug #48107](https://savannah.gnu.org/bugs/?48107))
+- Create valid gnuplot commands even for single-entry colormaps ([bug #48083](https://savannah.gnu.org/bugs/?48083)).
+- orderfields.m: Remove trailing bracket in docstring ([bug #48063](https://savannah.gnu.org/bugs/?48063)).
+- Don't overly restrict options passed to Java jvm ([bug #39063](https://savannah.gnu.org/bugs/?39063)).
+- Write integers with correct byte order on big-endian systems ([bug #47434](https://savannah.gnu.org/bugs/?47434))
+- doc: Document syntax for specifying color when using Tex interpreter ([bug #47907](https://savannah.gnu.org/bugs/?47907)).
+- Round quantized pixel values before writing uintN images ([bug #47746](https://savannah.gnu.org/bugs/?47746))
+- Fix popen2 error on Windows when child writes to stderr ([bug #43036](https://savannah.gnu.org/bugs/?43036))
+- it_IT.ts: Correct Italian translation of "col:" ([bug #47857](https://savannah.gnu.org/bugs/?47857)).
+- avoid crash in audiowrite argument processing ([bug #47875](https://savannah.gnu.org/bugs/?47875))
+- make `__magick_read__` a built-in function ([bug #41699](https://savannah.gnu.org/bugs/?41699))
+- sortrows.m: Improve docstring ([bug #47844](https://savannah.gnu.org/bugs/?47844)).
+- doc: Fix typo in exec docstring.
+- Use correct URL for Online Documentation ([bug #47835](https://savannah.gnu.org/bugs/?47835)).
+- Fix autoscale affecting legend axes objects ([bug #47765](https://savannah.gnu.org/bugs/?47765)).
+- configure.ac: Remove AC_CHECK_FUNC for pipe now that gnulib::pipe used.
+- doc: fix on manual the syntax to empty elements from cell array.
+- octave.texi: Set document encoding to UTF-8.
+- Enable the pipe function on Windows ([bug #47614](https://savannah.gnu.org/bugs/?47614))
+- avoid mulitple definitions of static function-scope vars ([bug #47372](https://savannah.gnu.org/bugs/?47372))
+- Array-sym.cc: Delete obsolete file.
+- Initialize variable to stop unstable results for lgamma ([bug #47524](https://savannah.gnu.org/bugs/?47524)).
+- call openmp function at initialization ([bug #47372](https://savannah.gnu.org/bugs/?47372))
+- macros.texi: Colorized links for PDF files with Texinfo 6.x.
 
-[download]: http://www.octave.org/download.html
-[bug fixing release]: http://www.octave.org/fixes-4-0-3.html
-[Windows binary installer]: ftp://ftp.gnu.org/gnu/octave/windows/octave-4.0.3-installer.exe
+The above list was generated using the following command and very little
+manual post-processing:
+
+{% highlight bash %}
+hg log -r "release-4-0-1:release-4-0-3" -b stable \
+| grep "summary:" | nl | sort -rn | cut -f 2- \
+| sed 's/summary:\s*/- /' \
+| sed 's/\(bug #\)\([0-9]*\)/[\1\2](https:\/\/savannah.gnu.org\/bugs\/?\2)/' \
+| sed 's/\(patch #\)\([0-9]*\)/[\1\2](https:\/\/savannah.gnu.org\/patch\/?\2)/'
+{% endhighlight %}
+
+[1]: {{ "download.html" | absolute_url }}
+[2]: ftp://ftp.gnu.org/gnu/octave/windows/octave-4.0.3-installer.exe
--- a/about.md	Tue Nov 01 00:28:55 2016 +0100
+++ b/about.md	Tue Nov 01 01:06:10 2016 +0100
@@ -1,28 +1,94 @@
 ---
 layout: page
 title: About
-permalink: /about/
 menu: true
 ---
 
-GNU Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command line interface for solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with Matlab. It may also be used as a batch-oriented language.
+GNU Octave is a high-level language, primarily intended
+for numerical computations.  It provides a convenient
+command line interface for solving linear and nonlinear
+problems numerically, and for performing other numerical
+experiments using a language that is mostly compatible
+with Matlab.  It may also be used as a batch-oriented
+language.
 
-Octave has extensive tools for solving common numerical linear algebra problems, finding the roots of nonlinear equations, integrating ordinary functions, manipulating polynomials, and integrating ordinary differential and differential-algebraic equations. It is easily extensible and customizable via user-defined functions written in Octave's own language, or using dynamically loaded modules written in C++, C, Fortran, or other languages.
+Octave has extensive tools for solving common numerical
+linear algebra problems, finding the roots of nonlinear
+equations, integrating ordinary functions, manipulating
+polynomials, and integrating ordinary differential and
+differential-algebraic equations.  It is easily
+extensible and customizable via user-defined functions
+written in Octave's own language, or using dynamically
+loaded modules written in C++, C, Fortran, or other
+languages.
 
-GNU Octave is also freely redistributable software. You may redistribute it and/or modify it under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation.
+GNU Octave is also freely redistributable software.  You
+may redistribute it and/or modify it under the terms of
+the [GNU General Public License (GPL)][1] as published by
+the [Free Software Foundation][2].
+
+Octave was written by [John W. Eaton][3] and [many others][4].
+Because Octave is [free software][5] you are encouraged to help
+make Octave more useful by writing and contributing additional
+functions for it, and by reporting any problems you may have.
 
-Octave was written by John W. Eaton and many others. Because Octave is free software you are encouraged to help make Octave more useful by writing and contributing additional functions for it, and by reporting any problems you may have.
+[1]: https://www.gnu.org/copyleft/gpl.html
+[2]: https://www.gnu.org/
+[3]: mailto:jwe@octave.org
+[4]: http://hg.savannah.gnu.org/hgweb/octave/file/tip/doc/interpreter/contributors.in
+[5]: https://www.gnu.org/philosophy/free-sw.html
 
-### History
+
+
+# History
 
-Octave was originally conceived (in about 1988) 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. We originally envisioned some very specialized tools for the solution of chemical reactor design problems. Later, after seeing the limitations of that approach, we opted to attempt to build a much more flexible tool.
+Octave was originally conceived (in about 1988) 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.
+We originally envisioned some very specialized tools for the solution
+of chemical reactor design problems.  Later, after seeing the
+limitations of that approach, we opted to attempt to build a much more
+flexible tool.
 
-There were still some people who said that we should just be using Fortran instead, because it is the computer language of engineering, but every time we had tried that, the students spent far too much time trying to figure out why their Fortran code failed and not enough time learning about chemical engineering. We believed that with an interactive environment like Octave, most students would be able to pick up the basics quickly, and begin using it confidently in just a few hours.
+There were still some people who said that we should just be using
+Fortran instead, because it is the computer language of engineering,
+but every time we had tried that, the students spent far too much time
+trying to figure out why their Fortran code failed and not enough time
+learning about chemical engineering.  We believed that with an
+interactive environment like Octave, most students would be able to
+pick up the basics quickly, and begin using it confidently in just a
+few hours.
 
-Full-time development began in the Spring of 1992. The first alpha release was January 4, 1993, and version 1.0 was released February 17, 1994. Since then, Octave has been through several major revisions, is included with Debian GNU/Linux and SuSE Linux distributions, and was reviewed in the in the July, 1997 issue of the Linux Journal.
+Full-time development began in the Spring of 1992.  The first alpha
+release was January 4, 1993, and version 1.0 was released February 17,
+1994.  Since then, Octave has been through several major revisions, is
+included with [Debian GNU/Linux][6], [openSUSE][7], and many other
+GNU/Linux distributions.  Octave was reviewed in the in the July, 1997
+issue of the [Linux Journal][8].
 
-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. Today, thousands of people worldwide are using Octave in teaching, research, and commercial applications.
+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.  Today, thousands of people worldwide are using Octave in
+teaching, research, and commercial applications.
 
-Just about everyone thinks that the name Octave has something to do with music, but it is actually the name of one of the author's former professors 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.
+Just about everyone thinks that the name Octave has something to do
+with music, but it is actually the name of one of the author's former
+professors 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.
 
-Everyone is encouraged to share this software with others under the terms of the GNU General Public License (GPL). 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.
+Everyone is encouraged to share this software with others under the
+terms of the [GNU General Public License (GPL)][1].  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.
+
+[6]: https://www.debian.org/
+[7]: https://www.opensuse.org/
+[8]: http://www.linuxjournal.com/article/1225
--- a/bugs.md	Tue Nov 01 00:28:55 2016 +0100
+++ b/bugs.md	Tue Nov 01 01:06:10 2016 +0100
@@ -1,69 +1,153 @@
 ---
 layout: page
 title: Bugs
-permalink: /bugs/
+menu: true
 ---
 
+GNU Octave uses the bug tracker at [Savannah][1].
+There you can [report a new bug][2], [browse recent bugs][1],
+or [search for bugs][3].
+
+[1]: {{ site.bugs_url }}
+[2]: {{ site.bugs_url }}&func=additem
+[3]: {{ site.bugs_url }}&func=search
+
+<p>
+<div class="alert">
+{% octicon stop class:"octicon-stop-octave" %}
+Please do <strong>not</strong> send any bug reports to the
+<samp>{{ site.help_email }}</samp> mailing list.
+Most Octave users do not want to receive bug reports.
+</div>
+</p>
+
+<p>
+<div class="alert">
+{% octicon stop class:"octicon-stop-octave" %}
+<strong>Before</strong> reporting a new bug, please read the guidelines below.
+</div>
+</p>
+
+
+
+# Is the bug already known?
+
+When you encounter a problem,
+the first thing to do is to see if it is already known.
+Therefore,
+
+- [search for already reported bugs at the bug tracker][3],
+
+- look at the [list of known causes of trouble][4] in the Octave manual.
+
+If you your problem does not appear to be known,
+then you should report the problem.
+
+Reporting a bug may help you by bringing a solution to your problem,
+or it may not.  In any case, the principal function of a bug report is
+to help the entire community by making the next version of Octave work
+better, so you can contribute to the maintenance of Octave.
+
+[4]: {{ site.docs_url }}/Trouble.html#Trouble
+
 
 
-<ul class="button-group">
-  <li><a href="http://savannah.gnu.org/bugs/?func=additem&group=octave" class="button">Report</a></li>
-  <li><a href="http://savannah.gnu.org/bugs/?func=search&group=octave" class="button">Search</a></li>
-  <li><a href="http://savannah.gnu.org/bugs/?group=octave" class="button">Browse</a></li>
-</ul>
-
-Your bug reports play an essential role in making Octave reliable. You can make fixing problems easier by following the guidelines below.
-
-### Where and How to Send Bug Reports
-
-To report a bug in Octave, [submit](http://savannah.gnu.org/bugs/?func=additem&group=octave) a bug report using the [bug tracker](http://savannah.gnu.org/bugs/?group=octave).
-
-<div class="panel">
-Please do not send bug reports to the help-octave mailing list. Most users of Octave do not want to receive bug reports.
-</div>
-
-When you encounter a problem, the first thing to do is to see if it is already known. The best place to look for reported problems is the Octave [bug tracker](http://savannah.gnu.org/bugs/?group=octave).
-
-The Octave reference manual also contains a list of [known causes of trouble](http://www.gnu.org/software/octave/doc/interpreter/Trouble.html#Trouble).
-
-If you your problem does not appear to be known, then you should report the problem.
-
-Reporting a bug may help you by bringing a solution to your problem, or it may not. In any case, the principal function of a bug report is to help the entire community by making the next version of Octave work better, so you can contribute to the maintenance of Octave.
-
-### Have You Found a Bug?
+# Is it really a bug?
 
 If you are not sure whether you have found a bug, here are some guidelines:
 
-- If Octave gets a fatal signal, for any input whatever, that is a bug. Reliable interpreters never crash.
+- If Octave gets a fatal signal, for any input whatever, that is a bug.
+  Reliable interpreters never crash.
+
 - If Octave produces incorrect results, for any input whatever, that is a bug.
-- Some output may appear to be incorrect when it is in fact due to a program whose behavior is undefined, which happened by chance to give the desired results on another system. For example, trigonometric functions may produce different results because of differences in the math library or the way floating point arithmetic is handled on various systems.
+
+- Some output may appear to be incorrect when it is in fact due to a
+  program whose behavior is undefined, which happened by chance to give
+  the desired results on another system.  For example, trigonometric
+  functions may produce different results because of differences in the
+  math library or the way floating point arithmetic is handled on various
+  systems.
+
 - If Octave produces an error message for valid input, that is a bug.
-- If Octave does not produce an error message for invalid input, that is a bug. However, you should note that your idea of "invalid input" might be my idea of "an extension" or "support for traditional practice".
-- If you are an experienced user of programs like Octave, your suggestions for improvement are welcome in any case.
+
+- If Octave does not produce an error message for invalid input, that is
+  a bug.  However, you should note that your idea of "invalid input"
+  might be my idea of "an extension" or "support for traditional practice".
+
+- If you are an experienced user of programs like Octave, your
+  suggestions for improvement are welcome in any case.
+
+
 
-### Making Your Bug Report Count
+# Make your bug report count
 
-In order for a bug report to serve its purpose, you must include the information that makes it possible to fix the bug.
+In order for a bug report to serve its purpose, you must include the
+information that makes it possible to fix the bug.
+
+The fundamental principle of reporting bugs usefully is this:
+**report all the facts**.  If you are not sure whether to
+state a fact or leave it out, state it.
 
-The fundamental principle of reporting bugs usefully is this: **report all the facts**. If you are not sure whether to state a fact or leave it out, state it.
+Often people omit facts because they think they know what causes the
+problem and they conclude that some details don't matter.  Thus, you
+might assume that the name of the variable you use in an example does
+not matter.  Well, probably it doesn't, but one cannot be sure.
+Perhaps the bug is a stray memory reference which happens to fetch
+from the location where that name is stored in memory; perhaps, if the
+name were different, the contents of that location would fool the
+interpreter into doing the right thing despite the bug.  Play it safe
+and give a specific, complete example.
 
-Often people omit facts because they think they know what causes the problem and they conclude that some details don't matter. Thus, you might assume that the name of the variable you use in an example does not matter. Well, probably it doesn't, but one cannot be sure. Perhaps the bug is a stray memory reference which happens to fetch from the location where that name is stored in memory; perhaps, if the name were different, the contents of that location would fool the interpreter into doing the right thing despite the bug. Play it safe and give a specific, complete example.
-
-Keep in mind that the purpose of a bug report is to enable someone to fix the bug if it is not known. Always write your bug reports on the assumption that the bug is not known.
+Keep in mind that the purpose of a bug report is to enable someone to
+fix the bug if it is not known. Always write your bug reports on
+the assumption that the bug is not known.
 
-Sometimes people give a few sketchy facts and ask, "Does this ring a bell?" This cannot help us fix a bug. It is better to send a complete bug report to begin with.
+Sometimes people give a few sketchy facts and ask, "Does this ring a
+bell?"  This cannot help us fix a bug.  It is better to send a complete
+bug report to begin with.
+
+Try to make your bug report self-contained.  If we have to ask you for
+more information, it is best if you include all the previous information
+in your response, as well as the information that was missing.
 
-Try to make your bug report self-contained. If we have to ask you for more information, it is best if you include all the previous information in your response, as well as the information that was missing.
+The bug tracker will prompt you for some basic information like
+the version of Octave and the operating system you are using.  You
+also need to include the following to enable someone to
+investigate the bug:
+
+- A complete input file that will reproduce the bug.
 
-The bug tracker will prompt you for some basic information like the version of Octave and the operating system you are using. You also need to include the following to enable someone to investigate the bug:
+  A single statement may not be enough of an example--the bug might
+  depend on other details that are missing from the single statement where
+  the error finally occurs.
+
+- The command arguments you gave Octave to execute that example
+  and observe the bug.  To guarantee you won't omit something important,
+  list all the options.
 
-- A complete input file that will reproduce the bug. A single statement may not be enough of an example--the bug might depend on other details that are missing from the single statement where the error finally occurs.
-- The command arguments you gave Octave to execute that example and observe the bug. To guarantee you won't omit something important, list all the options. If we were to try to guess the arguments, we would probably guess wrong and then we would not encounter the bug.
-- A description of what behavior you observe that you believe is incorrect. For example, "The interpreter gets a fatal signal," or, "The output produced at line 208 is incorrect."
-- The output you expected to see. Although it might seem obvious to you, someone examining the problem might not know what result you consider correct.
-- If you wish to suggest changes to the Octave source, send them as context diffs. If you discuss something in the Octave source, refer to it by context, not by line number, because the line numbers in the development sources probably won't match those in your sources.
+  If we were to try to guess the arguments, we would probably guess wrong
+  and then we would not encounter the bug.
+
+- A description of what behavior you observe that you believe is incorrect.
+  For example, "The interpreter gets a fatal signal," or, "The output produced
+  at line 208 is incorrect."
+
+- The output you expected to see.  Although it might seem obvious to you,
+  someone examining the problem might not know what result you consider
+  correct.
 
-### Sending Patches for Octave
+- If you wish to suggest changes to the Octave source, send them as context
+  diffs.  If you discuss something in the Octave source, refer to it by
+  context, not by line number, because the line numbers in the development
+  sources probably won't match those in your sources.
+
+
 
-If you have a suggested fix for a bug, please attach it to your report in the tracker. Your patch is more likely to be reviewed if you follow the guidelines in the Octave manual about to [generate a changeset](http://www.gnu.org/software/octave/doc/interpreter/Basics-of-Generating-a-Changeset.html#Basics-of-Generating-a-Changeset) and submit patches for Octave.
+# Sending Patches for Octave
 
+If you have a suggested fix for a bug, please attach it to your report in
+the tracker.  Your patch is more likely to be reviewed if you follow the
+guidelines in the Octave manual about to [generate a changeset][5]
+and submit patches for Octave.
+
+[5]: {{ site.docs_url }}/Basics-of-Generating-a-Changeset.html#Basics-of-Generating-a-Changeset
--- a/commercial-support.md	Tue Nov 01 00:28:55 2016 +0100
+++ b/commercial-support.md	Tue Nov 01 01:06:10 2016 +0100
@@ -1,23 +1,44 @@
 ---
 layout: page
 title: Commercial Support
-permalink: /commercial-support/
 menu: false
 ---
 
-The following organizations and individuals provide paid consulting services for Octave. If you have questions about them, please visit their web sites or contact them individually. This list is provided as a service to the community and the support providers. The Octave project does not provide endorsements or recommendations.
-
-If you would like to have your company listed here, please contact the maintainers@octave.org mailing list.
+The following organizations and individuals provide paid consulting services
+for Octave.  If you have questions about them, please visit their web sites
+or contact them individually.  This list is provided as a service to the
+community and the support providers.  The Octave project does not provide
+endorsements or recommendations.
 
-### John W. Eaton Consulting, Inc.
+If you would like to have your company listed here, please contact us at the
+[`{{ site.maintainers_email }}`][1] mailing list.
+
+[1]: mailto:{{ site.maintainers_email }}
 
-[John W. Eaton Consulting, Inc.](http://jweaton.org/) provides software consulting and support services, primarily for GNU Octave, a free software system for numerical analysis. Services include help with installing and using the software, as well as prompt responses to problem reports.
+
+- [**John W. Eaton Consulting, Inc.**][2] provides software consulting and support
+  services, primarily for GNU Octave, a free software system for numerical
+  analysis.  Services include help with installing and using the software,
+  as well as prompt responses to problem reports.
 
-As the original author and current maintainer of GNU Octave, Dr. Eaton is uniquely qualified to deliver the most comprehensive solutions for your Octave needs.
+  As the original author and current maintainer of GNU Octave, Dr. Eaton is
+  uniquely qualified to deliver the most comprehensive solutions for your
+  Octave needs.
 
-### MOXOFF
+- [**MOXOFF**][3] provides custom programming and custom numerical modeling
+  solutions based on free software tools and in particular on GNU Octave.
 
-[MOXOFF](http://www.moxoff.com/octave) provides custom programming and custom numerical modeling solutions based on free software tools and in particular on GNU Octave.
+  MOXOFF applies mathematics and statistical analysis to complex, multiphysics
+  problems.  Our approach covers a broad spectrum of fields: we run applied
+  research and develop innovative mathematical solutions for engineering,
+  life science and social science problems.  Our skills can be applied to a
+  wide range of subjects: bio-technologies, aerospace design, domestic
+  appliances, conventional and renewable power generation, electronics,
+  financial instruments, analysis and simulation of geological processes,
+  biomedical equipment to cite just a few of our more recent projects.
+  We deliver business-class solutions based on GNU Octave and we also provide
+  evolutive maintenance.  We design GNU Octave based interfaces to free
+  software tools for scientific computing.
 
-MOXOFF applies mathematics and statistical analysis to complex, multiphysics problems. Our approach covers a broad spectrum of fields: we run applied research and develop innovative mathematical solutions for engineering, life science and social science problems. Our skills can be applied to a wide range of subjects: bio-technologies, aerospace design, domestic appliances, conventional and renewable power generation, electronics, financial instruments, analysis and simulation of geological processes, biomedical equipment to cite just a few of our more recent projects. We deliver business-class solutions based on GNU Octave and we also provide evolutive maintenance. We design GNU Octave based interfaces to free software tools for scientific computing.
-
+[2]: http://jweaton.org
+[3]: http://www.moxoff.com/octave
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/community-news.md	Tue Nov 01 01:06:10 2016 +0100
@@ -0,0 +1,13 @@
+---
+layout: community-news
+---
+
+{% for post in site.posts limit:3 %}
+
+## [{{ post.title }}]({{ post.url | absolute_url }})
+
+{{ post.excerpt }}
+
+<small><em>&mdash; The Octave Developers, {{ post.date | date: "%b %-d, %Y" }}</em></small>
+
+{% endfor %}
--- a/contribute.md	Tue Nov 01 00:28:55 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
----
-layout: page
-title: Contribute
-permalink: /contribute/
-menu: true
----
-
-We always need more help improving Octave and there are many ways you can contribute. You can help by fixing bugs, developing new features, answering questions on the mailing list or IRC channel, helping to improve the web pages.
-
-If you are wondering what to work on, we have a standard answer: what would you like to work on? We try not to tell contributors what to work on as most people do their best work when they are within their own field of interest. So, we would love your help, but would also love for you to work on what you love.
-
-If you need some inspiration, we do maintain a list of possible projects on the [Wiki](http://www.octave.org/wiki/Projects).
-
-If you have an idea on what to contribute, then join the maintainers mailing list and discuss your ideas there. That way others can provide input early on, which makes your contribution more likely to get accepted.
-
-### Contacting developers
-
-If you want to participate in Octave development, you should join the [maintainers@octave.org](https://lists.gnu.org/mailman/listinfo/octave-maintainers) mailing list. Please use this list only if you are participating in Octave's development. If you are looking for help in using Octave, please use the [help@octave.org](https://lists.gnu.org/mailman/listinfo/help-octave) list instead, or check out other [support options]({{"/support-options/" | prepend: site.baseurl}}).
-
-For sometimes faster communication, you can also chat in IRC in #octave in Freenode. Note, however, that the primary medium for development talk is the mailing list.
-
-### Using the Development Sources
-
-The latest development sources of Octave are also available via Mercurial (hg) archive.
-
-The primary archive address is [http://www.octave.org/hg/octave](http://www.octave.org/hg/octave), which currently redirects to [http://hg.savannah.gnu.org/hgweb/octave](http://hg.savannah.gnu.org/hgweb/octave).
-
-If you decide to use the development sources from the Mercurial archive, please read the file [etc/HACKING](http://www.octave.org/hg/octave/file/tip/etc/HACKING) that is available with the source files.
-
-Assuming you have Mercurial and git installed on your machine you may obtain the latest development version of Octave sources with the following command:
-
-    hg clone http://www.octave.org/hg/octave
-    
-This will clone two repositories, one of which is subrepository of the main Octave repository. Once you have these, you can resync with the archive by doing
-    
-    hg -v pull
-    hg -v update
-    
-The `-v` (verbose) option is not required but provides extra information about what was pulled and updated. The Octave manual has more information about contributing to Octave's development.
-
-### Octave Forge
-
-The community-developed [Octave-Forge][forge] packages expand Octave's core functionality by providing field specific features via Octave's package system. For example, image and signal processing, fuzzy logic, instrument control, and statistics packages are examples of individual Octave-Forge packages.
-
-[forge]: http://octave.sourceforge.net/
-[forge-packages]: http://octave.sourceforge.net/packages.php
--- a/donate.md	Tue Nov 01 00:28:55 2016 +0100
+++ b/donate.md	Tue Nov 01 01:06:10 2016 +0100
@@ -1,14 +1,14 @@
 ---
 layout: page
 title: Donate
-permalink: /donate/
 menu: true
 ---
 
 <div class="row ">
 <div class="columns small-6">
 <div class="panel callout">
-Octave development takes a lot of time and expertise. Your contributions help to ensure that Octave will continue to improve.
+Octave development takes a lot of time and expertise.
+Your contributions help to ensure that Octave will continue to improve.
 </div>
 </div>
 <div class="columns small-6">
@@ -16,11 +16,25 @@
 </div>
 </div>
 
-If you are already an Octave user and would like to see it improve more rapidly, then please donate so that we can spend more of our time working on Octave. If we could raise as little as $300,000/year, we could pay several key developers to work full time on Octave. Given even the most conservative estimate of the number of users of Octave, this amount could easily be reached if every user contributed the cost of a few lattes.
+- **[Free Software Foundation donation page][1]**
 
-If your company has a budget for numerical computing tools, consider spending 10% (or more!) of that on Octave. Do you expect Octave to improve on a $0 budget while the proprietary tools are well-funded by your license fees?
+If you are already an Octave user and would like to see it improve more rapidly,
+then please donate so that we can spend more of our time working on Octave.
+If we could raise as little as $300,000/year,
+we could pay several key developers to work full time on Octave.
+Given even the most conservative estimate of the number of users of Octave,
+this amount could easily be reached if every user contributed the cost of
+a few lattes.
 
-Consider [hiring someone]({{"/commercial-support/" | prepend: site.baseurl}}) to implement the specific features you need.
+If your company has a budget for numerical computing tools,
+consider spending 10% (or more!) of that on Octave.
+Do you expect Octave to improve on a $0 budget
+while the proprietary tools are well-funded by your license fees?
 
-Bitcoin donations also accepted at this address: [1E6HchBMX1EfiJQhSUanuF4VYKk552tEHF](bitcoin:1E6HchBMX1EfiJQhSUanuF4VYKk552tEHF) 
+Consider [hiring someone][2] to implement the specific features you need.
+
+Bitcoin donations also accepted at this address: [1E6HchBMX1EfiJQhSUanuF4VYKk552tEHF][3] 
 
+[1]: https://crm.fsf.org/civicrm/contribute/transact?reset=1&id=10
+[2]: {{ "commercial-support.html" | relative_url }}
+[3]: bitcoin:1E6HchBMX1EfiJQhSUanuF4VYKk552tEHF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/download.md	Tue Nov 01 01:06:10 2016 +0100
@@ -0,0 +1,7 @@
+---
+layout: page
+title: Install
+menu: true
+---
+
+{% include install.html %}
--- a/examples.md	Tue Nov 01 00:28:55 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,206 +0,0 @@
----
-layout: page
-title: Examples
-permalink: /examples/
-menu: true
----
-
-### Using Octave 
-
-First, follow the [installation guide]({{ site.baseurl/install/ }}) to install Octave on your system. Then, launch the interactive prompt by typing `octave` in a terminal or by clicking the icon in the programs menu. For further guidance, see the manual page on [Running Octave]({{site.docs_url}}Running-Octave.html).
-
-### Language Basics
-
-Click the headings below to see a manual page related to each topic
-{: .panel}
-
-###### [Variable Assignment]({{site.docs_url}}Variables.html)
-
-Assign values to variables with `=` (Note: assignment is <a href="#" data-reveal-id="assignmentModal">pass-by-value</a>)
-
-###### [Comments]({{site.docs_url}}Comments.html)
-
-`%` starts a comment block that continues to the end of the line.
-
-###### [Evaluation]({{site.docs_url}}Simple-Examples.html)
-
-The output of every command is printed to the console unless terminated with `;`. The `disp()` command can be used to print output anywhere. Use `exit` to quit the console.
-
-{% highlight matlab %}
-t = 99 + 1  % prints 't = 100'
-t = 99 + 1; % nothing is printed
-disp(t);
-  100
-{% endhighlight %}
-
-###### [Math]({{site.docs_url}}Arithmetic.html)
-
-Many mathematical operators are available in addition to the standard arithmetic. Operations are floating-point.
-{% highlight matlab %}
-x = 3/4*pi;
-y = sin(x)
-  0.70711
-{% endhighlight %}
-
-###### [Matrices]({{site.docs_url}}Matrices.html)
-
-Arrays in Octave are called matrices. One-dimensional matrices are referred to as vectors. Use `space` or `,` to separate elements and `;` to start a new row.
-
-{% highlight matlab %}
-rowVec = [8 6 4]
-  8   6   4   
-columnVec = [8; 6; 4]
-  8
-  6
-  4
-mat = [8 6 4; 2 0 -2]
-  8   6   4
-  2   0  -2
-size(mat)
-  2   3
-length(rowVec)
-  3
-{% endhighlight %}
-
-###### [Linear Algebra]({{site.docs_url}}Linear-Algebra.html)
-
-Many common linear algebra operations are simple to program using Octave's matrix syntax.
-
-{% highlight matlab %}
-columnVec * rowVec
-  64   48   32
-  48   36   24
-  32   24   16
-rowVec * columnVec
-  116
-columnVec'
-  8   6   4
-{% endhighlight %}
-
-###### [Accessing Elements]({{site.docs_url}}Index-Expressions.html)
-
-Octave is 1-indexed. Matrix elements are accessed as `matrix(rowNum, columnNum)`.
-
-{% highlight matlab %}
-mat(2,3)
-  -2
-{% endhighlight %}
-
-###### [Iteration]({{site.docs_url}}Statements.html)
-
-Octave supports `for` and `while` loops, as well as other control flow structures.
-
-{% highlight matlab %}
-x = zeros(50,1);
-for i=1:2:100 % iterate from 1 to 100 with step size 2
-  x(i) = i^2;
-end
-
-y = zeros(50,1);
-k = 1;
-step = 2;
-while k<=(100-step)
-  y(i) = k^2;
-  k = k + step;
-end
-{% endhighlight %}
-
-###### [Vectorization]({{site.docs_url}}Vectorization-and-Faster-Code-Execution.html)
-
-For-loops can often be replaced or simplified using vector syntax. The operators `*`,`/`,`^`,`%` all support element-wise operations using `.`. Many other functions operate element-wise by default (`sin`,`+`,`-`, etc.).
-
-{% highlight matlab %}
-i = 1:2:100;   % create a 50-element array
-x = i.^2;      % each element is squared
-y = x + 9;     % add 9 to each element
-z = y./i;      % divide each element in y by the corresponding value in i
-w = sin(i/10); % take the sine of each element ÷ 10
-{% endhighlight %}
-
-###### [Plotting]({{site.docs_url}}Two_002dDimensional-Plots.html)
-
-`plot` can be called with vector arguments to create 2D line and scatter plots.
-
-{% highlight matlab %}
-plot(w,i/10);
-title('w = sin(i/10)';
-xlabel('i ÷ 10');
-ylabel('w');
-{% endhighlight %}
-
-<img src="{{site.baseurl}}/img/sinePlot.png" alt="sine plot" style="height: 20rem; width: auto;" />
-
-
-###### [Strings]({{site.docs_url}}Strings.html)
-
-Strings are simply arrays of characters. Strings can be composed using `printf`-style formatting with `sprintf` and `fprintf`.
-{% highlight matlab %}
-firstString = 'hello world';
-secondString = '!';
-[firstString,secondString]
-  hello world!
-fprintf('%s %.10f \n', 'The number is:', 10)
-  The number is: 10.0000000000
-{% endhighlight %}
-
-###### [If-else]({{site.docs_url}}The-if-Statement.html)
-
-Conditional statements can be used to create branching logic in your code.
-
-{% highlight matlab %}
-% Print 'Foo' if divisible by 7,
-%       'Fizz' if divisible by 3,
-%       'Buzz' if divisible by 5,
-%       'FizzBuzz' if divisible by 3 and 5
-for (i = 1:1:100)
-  outputString = '';
-  if (rem(i,3) == 0) % rem is the remainder function
-    outputString = [outputString, 'Fizz'];
-  end
-  if (rem(i,5) == 0)
-    outputString = [outputString, 'Buzz'];
-  elseif (rem(i,7) == 0)
-    outputString = 'Foo';
-  else 
-    outputString = outputString;
-  end
-  fprintf('i=%g: %s \n',i,outputString);
-end
-{% endhighlight %}
-
-{% highlight text %}
-  ...
-  i=12: Fizz
-  i=13:
-  i=14: Foo
-  i=15: FizzBuzz
-  ...
-{% endhighlight %}
-
-###### [Help]({{site.docs_url}}Simple-Examples.html#Help-and-Documentation)
-
-The `help` and `doc` commands can be invoked at the Octave prompt to print documentation for any function.
-
-{% highlight matlab %}
-help plot
-doc plot
-{% endhighlight %}
-
-###### [Packages]({{site.docs_url}}Packages.html)
-
-Community-developed packages can be added from the [Octave Forge](http://octave.sourceforge.net/index.html) to extend the functionality of Octave's core library. (Matlab users: Forge packages act similarly to Matlab's toolboxes.) The `pkg` command is used to manage these packages. For example, to use the image processing library from the Forge, use:
-
-{% highlight matlab %}
-pkg install -forge image % install package
-pkg load image           % load new functions into workspace
-{% endhighlight %} 
-
-<div id="assignmentModal" class="reveal-modal tiny" data-reveal aria-hidden="true" role="dialog">
-{% highlight matlab %}
-a = 1
-b = a
-b = 2
-a == b % returns 0 (false)
-{% endhighlight %}
-<a class="close-reveal-modal" aria-label="Close">&#215;</a>
-</div>
--- a/feed.xml	Tue Nov 01 00:28:55 2016 +0100
+++ b/feed.xml	Tue Nov 01 01:06:10 2016 +0100
@@ -6,18 +6,18 @@
   <channel>
     <title>{{ site.title | xml_escape }}</title>
     <description>{{ site.description | xml_escape }}</description>
-    <link>{{ site.url }}{{ site.baseurl }}/</link>
-    <atom:link href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}" rel="self" type="application/rss+xml"/>
+    <link>{{ "/" | absolute_url }}</link>
+    <atom:link href="{{ "/feed.xml" | absolute_url }}" rel="self" type="application/rss+xml"/>
     <pubDate>{{ site.time | date_to_rfc822 }}</pubDate>
     <lastBuildDate>{{ site.time | date_to_rfc822 }}</lastBuildDate>
     <generator>Jekyll v{{ jekyll.version }}</generator>
-    {% for post in site.posts limit:10 %}
+    {% for post in site.posts limit:20 %}
       <item>
         <title>{{ post.title | xml_escape }}</title>
         <description>{{ post.content | xml_escape }}</description>
         <pubDate>{{ post.date | date_to_rfc822 }}</pubDate>
-        <link>{{ post.url | prepend: site.baseurl | prepend: site.url }}</link>
-        <guid isPermaLink="true">{{ post.url | prepend: site.baseurl | prepend: site.url }}</guid>
+        <link>{{ post.url | absolute_url }}</link>
+        <guid isPermaLink="true">{{ post.url | absolute_url }}</guid>
         {% for tag in post.tags %}
         <category>{{ tag | xml_escape }}</category>
         {% endfor %}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/get-involved.md	Tue Nov 01 01:06:10 2016 +0100
@@ -0,0 +1,88 @@
+---
+layout: page
+title: Contribute
+menu: true
+---
+
+We always need more help improving Octave and there are many ways you can
+contribute.  You can help by fixing bugs, developing new features, answering
+questions on the mailing list or IRC channel, helping to improve the web pages.
+
+If you are wondering what to work on, we have a standard answer:
+what would you like to work on?  We try not to tell contributors
+what to work on as most people do their best work when they are
+within their own field of interest.  So, we would love your help,
+but would also love for you to work on what you love.
+
+For some inspiration, we do maintain a [list of possible projects][1]
+on the Wiki.
+
+If you have an idea on what to contribute, then join the
+[`{{ site.maintainers_email }}`][2] mailing list or the IRC
+[`{{ site.irc_channel }}` channel][3] in Freenode and discuss your ideas there.
+That way others can provide input early on, which makes your contribution more
+likely to get accepted.
+
+<p>
+<div class="alert">
+{% octicon stop class:"octicon-stop-octave" %}
+Please do <strong>not</strong> send help requests or bug reports to the
+<samp>{{ site.maintainers_email }}</samp> mailing list.  Refer to the
+<a href="{{ "bugs.html" | relative_url }}">bug tracker</a> or other
+<a href="{{ "support.html" | relative_url }}">support options</a> instead.
+</div>
+</p>
+
+[1]: http://www.octave.org/wiki/Projects
+[2]: https://lists.gnu.org/mailman/listinfo/octave-maintainers
+[3]: http://webchat.freenode.net/?channels=octave&amp;uio=MT1mYWxzZSYyPXRydWUmMTI9dHJ1ZQda
+
+
+# Using the Development Sources
+
+The latest development sources of Octave are also available via
+[Mercurial][4] (hg) archive.
+
+The primary archive address is [http://www.octave.org/hg/octave][5],
+which currently redirects to [http://hg.savannah.gnu.org/hgweb/octave][6].
+
+If you decide to use the development sources from the Mercurial archive,
+please read the file [`etc/HACKING`][7] that is available with the source
+files.
+
+Assuming you have Mercurial and git installed on your machine you may obtain
+the latest development version of Octave sources with the following command:
+
+{% highlight text %}
+hg clone http://www.octave.org/hg/octave
+{% endhighlight %}
+
+This will clone *two* repositories, one of which is subrepository of the
+main Octave repository. Once you have these, you can resync with the archive
+by doing
+
+{% highlight text %}
+hg -v pull
+hg -v update
+{% endhighlight %}
+
+The `-v` option is not required but provides extra information
+about what was pulled and updated.  The Octave manual has more
+information about [contributing to Octave's development][8].
+
+[4]: http://www.selenic.com/mercurial/wiki
+[5]: http://www.octave.org/hg/octave
+[6]: http://hg.savannah.gnu.org/hgweb/octave
+[7]: http://www.octave.org/hg/octave/file/tip/etc/HACKING
+[8]: {{ site.docs_url }}/Contributing-Guidelines.html#Contributing-Guidelines
+
+
+# Octave Forge
+
+The community-developed [Octave-Forge][9] packages expand Octave's core
+functionality by providing field specific features via Octave's package system.
+For example, image and signal processing, fuzzy logic, instrument control,
+and statistics packages are examples of individual [Octave-Forge packages][10].
+
+[9]: http://octave.sourceforge.net/
+[10]: http://octave.sourceforge.net/packages.php
Binary file img/example-mesh.png has changed
Binary file img/example-plot.png has changed
Binary file img/logo.png has changed
Binary file img/mesh.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/img/octave-logo.svg	Tue Nov 01 01:06:10 2016 +0100
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="283.28912"
+   height="283.28833"
+   id="svg2872"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="drawing.svg">
+  <metadata
+     id="metadata2942">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="640"
+     inkscape:window-height="483"
+     id="namedview2940"
+     showgrid="false"
+     inkscape:zoom="0.22425739"
+     inkscape:cx="138.6918"
+     inkscape:cy="147.82525"
+     inkscape:window-x="648"
+     inkscape:window-y="144"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg2872" />
+  <defs
+     id="defs2874">
+    <radialGradient
+       cx="182.9837"
+       cy="395.04871"
+       r="148.95309"
+       fx="182.9837"
+       fy="395.04871"
+       id="radialGradient3033"
+       xlink:href="#linearGradient3755"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.22914334,-0.24901479,0.7643572,0.83064268,-272.85337,-159.69482)" />
+    <linearGradient
+       id="linearGradient3755">
+      <stop
+         id="stop3757"
+         style="stop-color:#008cbe;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3759"
+         style="stop-color:#b2ffff;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+  </defs>
+  <g
+     id="layer1"
+     transform="translate(-233.35544,-390.71802)">
+    <g
+       transform="matrix(8.4519723,0,0,8.4519723,-278.45012,-403.82975)"
+       id="g3025">
+      <path
+         d="m 66.432103,97.488679 c -5.19584,5.646431 -3.93661,16.169031 2.81107,23.501871 6.74768,7.33285 16.42898,8.69955 21.62483,3.05312 5.19585,-5.64643 3.9402,-16.16946 -2.80749,-23.5023 -6.74768,-7.332861 -16.43256,-8.699131 -21.62841,-3.052691 z m 4.71149,2.34553 c 4.08256,-4.43659 11.589,-3.47152 16.76741,2.155961 5.17842,5.6275 6.06647,13.78491 1.98391,18.2215 -4.08256,4.43658 -11.59097,3.47369 -16.76939,-2.15381 -5.17842,-5.6275 -6.06449,-13.78704 -1.98193,-18.223651 z"
+         id="path5874"
+         style="fill:url(#radialGradient3033);fill-opacity:1;stroke:none" />
+      <rect
+         width="4.349854"
+         height="4.349854"
+         rx="0.76958966"
+         ry="0.76958966"
+         x="85.381561"
+         y="99.493881"
+         id="rect5876"
+         style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
+      <rect
+         width="10.245436"
+         height="10.245436"
+         rx="1.8126545"
+         ry="1.8126545"
+         x="60.92659"
+         y="105.2245"
+         id="rect5878"
+         style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
+      <rect
+         width="6.1897531"
+         height="6.1897531"
+         rx="1.0951102"
+         ry="1.0951102"
+         x="87.404739"
+         y="118.63705"
+         id="rect5880"
+         style="fill:#ff7f2a;fill-opacity:1;fill-rule:nonzero;stroke:#d45500;stroke-width:0.74403799;stroke-miterlimit:4;stroke-dasharray:none" />
+    </g>
+  </g>
+</svg>
Binary file img/plot.png has changed
Binary file img/sinePlot.png has changed
--- a/install.md	Tue Nov 01 00:28:55 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
----
-layout: page
-title: Install
-permalink: /install/
-menu: true
----
-
-{% include install.html %}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/license.md	Tue Nov 01 01:06:10 2016 +0100
@@ -0,0 +1,34 @@
+---
+layout: default
+title: License
+menu: false
+---
+
+The source code for Octave is freely redistributable under the
+terms of the [GNU General Public License (GPL)][1] as published by
+the [Free Software Foundation][2].
+
+Simply put, the GPL says that anyone who redistributes the
+software, with or without changes, must pass along the freedom to
+further copy and change it.  By distributing the complete source
+code for GNU Octave under the terms of the GPL, we guarantee that
+you and all other users will have the freedom to redistribute and
+change Octave.
+
+Releasing the source code for Octave has another benefit as well.
+By having access to all of the source code for a mathematical
+system like Octave, you have the ability to see *exactly*
+how each and every computation is performed.  There are no black
+boxes that hide the details of any calculation.
+
+Although enhancements to Octave that are written as function files
+in Octave's scripting language are not required to be
+redistributed under the terms of the GPL, we encourage you to
+release your enhancements to Octave under the same terms for the
+benefit of all users.  We also encourage you to
+[get involved with the Octave project][3] and submit your changes
+for inclusion in future versions of Octave.
+
+[1]: https://www.gnu.org/copyleft/gpl.html
+[2]: https://www.fsf.org/
+[3]: {{ "get-involved.html" | relative_url }}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/missing.md	Tue Nov 01 01:06:10 2016 +0100
@@ -0,0 +1,36 @@
+---
+layout: default
+title: Missing functions
+menu: false
+---
+
+GNU Octave strives to be among the very best numerical tools available.
+While compatibility with Matlab is one of many strong features of Octave,
+we have not achieved 100% compatibility.
+If you are reading this page, it is most likely because you attempted to
+use a function that is part of core Matlab, but has yet to be implemented
+in Octave.
+
+There can be several reasons for the given function not to exist in Octave:
+
+- The function may exist in [Octave-Forge][1], but has not yet been adopted
+  as a part of the core Octave distribution.  You can try to look for your
+  function in the [alphabetical list of functions][2] at the Octave-Forge
+  web site to see if it is available in some package.
+
+- The function may be new to Matlab.  It is possible that the Octave
+  community simply does not know it exists.  Should this be the case,
+  feel free to open a feature request in the [Octave bug tracker][3].
+
+The Octave community consists of volunteers working in their spare time.
+As a result, development might sometimes not be fast enough for your needs.
+If you have a feature request for Octave, the best way to ensure that your
+suggested improvement gets incorporated is either to implement the feature
+yourself or to pay somebody to do it for you.
+If you are interested in funding work on Octave, please check out
+the [resources for developers][4].
+
+[1]: http://octave.sourceforge.net
+[2]: http://octave.sourceforge.net/functions_by_alpha.php
+[3]: {{ site.bugs_url }}
+[4]: {{ "get-involved.html" | relative_url }}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/news.md	Tue Nov 01 01:06:10 2016 +0100
@@ -0,0 +1,23 @@
+---
+layout: default
+title: News
+menu: false
+---
+
+[**{% octicon rss class:"octicon-rss-octave" %} News feed**][Feed]
+
+{% for post in site.posts %}
+{% if post.title == "News Archive" %}
+- [**{{ post.title }}**]({{ post.url | relative_url }})
+{% else %}
+- [**{{ post.title }}**]({{ post.url | relative_url }})
+  ({{ post.date | date: "%b %-d, %Y" }})
+
+
+  <div class="news-content">
+  {{ post.excerpt }}
+  </div>
+{% endif %}
+{% endfor %}
+
+[Feed]: {{ "feed.xml" | relative_url }}
--- a/support-expectations.md	Tue Nov 01 00:28:55 2016 +0100
+++ b/support-expectations.md	Tue Nov 01 01:06:10 2016 +0100
@@ -1,37 +1,97 @@
 ---
 layout: page
 title: Support Expectations
-permalink: /support-expectations/
 menu: false
 ---
 
-Octave is a capable free software system for numerical computing developed primarily by a community of volunteers. As good as it is, there are certainly some flaws and a lot of room for improvement. Most people who use Octave understand these things and know that if they work together with the community bugs will be fixed, features will be added, and Octave will improve over time. Working with people who have this kind of attitude is fun and rewarding.
+Octave is a capable free software system for numerical computing
+developed primarily by a community of volunteers.  As good as it
+is, there are certainly some flaws and a lot of room for
+improvement.  Most people who use Octave understand these things
+and know that if they work together with the community bugs will
+be fixed, features will be added, and Octave will improve over
+time.  Working with people who have this kind of attitude is fun
+and rewarding.
 
-Unfortunately, there are a few people who behave as though the community owes them support as well as a 100% Matlab compatible system, all at zero cost. It shouldn't really be necessary, but we'll say it anyway: working with these people is no fun. If you approach the Octave community this way, you are sure to be disappointed. You should also not be surprised when your requests for help are ignored.
+Unfortunately, there are a few people who behave as though the
+community owes them support as well as a 100% Matlab compatible
+system, all at zero cost.  It shouldn't really be necessary, but
+we'll say it anyway: working with these people is no fun.  If you
+approach the Octave community this way, you are sure to be
+disappointed.  You should also not be surprised when your requests
+for help are ignored.
 
-### Development Group
+
+# Development Group
 
-People sometimes think that Octave is developed by some large team of well-paid programmers. Nothing could be further from the truth. Most of the initial development of Octave was done by one person over several years. Since then, there have been at most a half-dozen or so volunteers working on Octave at any one time. You can see who has done most of the work by looking through the [development history](http://hg.savannah.gnu.org/hgweb/octave) (prior to February 2008 it is best to look in the old ChangeLog files). Currently, none of the Octave developers are paid to work on Octave directly.
-
-If you would like to see Octave moving forward more quickly, then contribute to its development, either by working on the project yourself, or by donating funds. With sufficient funding, we would be able to pay a few developers to work on Octave full time.
+People sometimes think that Octave is developed by some large team
+of well-paid programmers.  Nothing could be further from the truth.
+Most of the initial development of Octave was done by one person
+over several years.  Since then, there have been at most a half-dozen
+or so volunteers working on Octave at any one time.
+You can see who has done most of the work by looking through the
+[development history][1] (prior to February 2008 it is best to look
+in the old `ChangeLog` files).  Currently, none of the Octave developers
+are paid to work on Octave directly.
 
-### Help
+If you would like to see Octave moving forward more quickly, then
+contribute to its development, either by working on the project
+yourself, or by donating funds.  With sufficient funding, we would
+be able to pay a few developers to work on Octave full time.
+
+[1]: http://hg.savannah.gnu.org/hgweb/octave
+
 
-When asking for help on the mailing list or IRC channel, or reporting a bug, remember that the people helping you are Octave users just like you who are volunteering their time. They are not paid support staff. Use meaningful subject lines. Try to ask clear questions. Be precise about the problems you are having.
-Bugs
+# Help
+
+When asking for help on the mailing list or IRC channel,
+or reporting a bug, remember that the people helping you
+are Octave users just like you who are volunteering their time.
+They are not paid support staff.  Use meaningful subject lines.
+Try to ask clear questions.  Be precise about the problems you are having.
 
-No software is perfect, and Octave is no exception. You can search the list of bug reports to see what problems have been reported. In looking at the list, you might also noticed the number of problems that have been fixed. Nearly all of these problems have been fixed by volunteers. If you find a problem, you are encouraged to report it. Your report can help to improve Octave, but you should not think of the bug tracker as your personal support line.
 
-If you depend on Octave and absolutely must have prompt responses to problem reports, you should consider paying for commercial support.
+# Bugs
 
-### Features
+No software is perfect, and Octave is no exception.
+You can search the list of bug reports to see what problems have been reported.
+In looking at the list, you might also noticed the number of problems that
+have been *fixed*.
+Nearly all of these problems have been fixed by volunteers.
+If you find a problem, you are encouraged to [report it][2].
+Your report can help to improve Octave, but you should not think of the bug
+tracker as your personal support line.
 
-When we say that Octave is "mostly compatible" with Matlab, we mean that the language that it accepts is similar enough that a substantial amount of code written for Matlab can also run in Octave without needing to be changed. But Octave does not have all the features of Matlab, and it is unlikely that it ever will. Given that Matlab is developed in secret and Octave developers only find out about new Matlab features when new versions of Matlab are released, it is clearly impossible for Octave to have new Matlab features as soon as they are available in Matlab.
+If you depend on Octave and absolutely must have prompt responses
+to problem reports, you should consider paying
+for [commercial support][3].
+
+[2]: {{ "bugs.html" | relative_url }}
+[3]: {{ "commercial-support.html" | relative_url }}
+
+
+# Features
 
-In most cases, Octave has the features that it does because someone decided to add them becuase they needed them. If you have the programming skills perhaps you can add the features you need. If you not, then consider paying for someone to implement the feature for you. Most people who provide commercial support services for Octave will also take on custom programming projets.
+When we say that Octave is "mostly compatible" with Matlab,
+we mean that the language that it accepts is similar enough that a
+substantial amount of code written for Matlab can also run in
+Octave without needing to be changed.  But Octave does not have
+all the features of Matlab, and it is unlikely that it ever will.
+Given that Matlab is developed in secret and Octave developers
+only find out about new Matlab features when new versions of
+Matlab are released, it is clearly impossible for Octave to have
+new Matlab features as soon as they are available in Matlab.
 
-Even if you don't have the expertise required to implement new features or can't pay for someone to do the work for you, you may submit feature requests to the bug tracker. But you should understand that unless you are paying for someone to to add the feature, no one is obligated to do it for you.
 
-### Releases
+In most cases, Octave has the features that it does because
+someone decided to add them because they needed them.  If you have
+the programming skills perhaps you can add the features you need.
+If you not, then consider paying for someone to implement the
+feature for you.  Most people who provide [commercial support][3]
+services for Octave will also take on custom programming projects.
 
-The Octave project currently provides source releases only. We simply don't have the volunteer resources to provide executable versions of Octave packaged for different types of systems. If you'd like to see this situation change, volunteer to help us, or donate to the project so that an Octave developer can spend the time needed to do the job.
\ No newline at end of file
+Even if you don't have the expertise required to implement new
+features or can't pay for someone to do the work for you, you may
+submit feature requests to the bug tracker.  But you should
+understand that unless you are paying for someone to to add the
+feature, no one is obligated to do it for you.
--- a/support.md	Tue Nov 01 00:28:55 2016 +0100
+++ b/support.md	Tue Nov 01 01:06:10 2016 +0100
@@ -1,84 +1,96 @@
 ---
 layout: page
-title: Support
-permalink: /support/
+title: Help/Support
 menu: true
 ---
 
-If you need help using Octave, you have many options, from reading the Octave manual, asking for help on the mailing lists, chatting online with other Octave users, or paying for commercial support.
-
-<div class="panel callout">
-
-The Octave community is a loosely organized association of volunteers. Your interactions with the community will be better if you have the right expectations about the support options available to you. Please read the <a href="{{ "/support-expectations/" | prepend: site.baseurl }}">Support Expectations</a> page.
-
-</div>
+If you need help using Octave, you have many options, from reading
+the Octave manual, asking for help on the mailing lists, chatting
+online with other Octave users, or paying for [commercial support][1].
 
-#### Commercial Support
-
-Community support can be great, and with the Octave community it often is, but sometimes you need to know that your question will be answered. We maintain a [list of people and organizations]({{"/commercial-support/" | prepend: site.baseurl}}) who offer commercial support contracts for Octave. This list is available as a service to the community and the support providers. The Octave project does not provide endorsements or recommendations.
+The Octave community is a loosely organized association of
+volunteers.  Your interactions with the community will be better
+if you have the [right expectations about the support options][2]
+available to you.
 
-#### User Community
+[1]: {{ "commercial-support.html" | relative_url }}
+[2]: {{ "support-expectations.html" | relative_url }}
 
-There is an active user community centered around Octave. Please understand that the people answering your question on the mailing list or IRC channel, or helping to fix the bug you reported are doing so as volunteers.
+
 
-### Documentation
+# Documentation
 
-#### Reference Manual
-
-Octave is fully documented by a comprehensive 800 page [manual]({{site.docs_url}}).
+There is an [{% octicon book class:"octicon-book-manual" %} Online Manual][3]
+and a [{% octicon file-pdf class:"octicon-pdf-manual" %} PDF Version][4] of
+the comprehensive ~800 page manual.  This full documentation of Octave is
+generated directly from the Texinfo source files that are distributed along
+with every copy of the Octave source code.  The complete text of the manual
+is also available at the Octave prompt using the `doc` command.
 
-The on-line [HTML](http://www.gnu.org/software/octave/doc/interpreter/index.html) and [PDF](http://www.gnu.org/software/octave/octave.pdf) versions of the manual are generated directly from the Texinfo source files that are distributed along with every copy of the Octave source code. The complete text of the manual is also available at the Octave prompt using the doc command.
-
-A printed version of the Octave manual may be ordered from [Network Theory, Ltd](http://www.network-theory.co.uk/octave/manual). Any money raised from the sale of this book will support the development of free software. For each copy sold $1 will be donated to the GNU Octave Development Fund.
-
-#### Frequently Asked Questions
+A printed version of the Octave manual may be ordered from
+[Network Theory, Ltd.][5].  Any money raised from the sale of this book
+will support the development of free software.  For each copy sold $1
+will be donated to the GNU Octave Development Fund.
 
-If you are new to Octave, you may have some questions that have been asked (and answered) a few times before. See the [FAQ](http://www.octave.org/wiki/FAQ) on the wiki.
+[3]: {{ site.docs_url }}
+[4]: http://www.octave.org/octave.pdf
+[5]: http://www.network-theory.co.uk/octave/manual
 
-#### Wiki
+
+# Octave Wiki and FAQ
 
-The Octave Wiki is a great place to look for information about things that are not covered in the manual, or other transient topics (Google Summer of Code, Octave Conferences, etc.).
+The [Octave Wiki][6] is a great place to look for information about
+things that are not covered in the manual, or other transient topics
+(Google Summer of Code, Octave Conferences, etc.).
 
-### Contacting Other Users for Help
+Additionally, the wiki contains a list of
+[frequently asked questions (FAQ)][7]
 
-#### Mailing List
+[6]: {{ site.wiki_url }}
+[7]: {{ site.faq_url }}
 
-If your question isn't answered in the FAQ, the manual, or the Wiki, the [help@octave.org](https://lists.gnu.org/mailman/listinfo/help-octave) mailing list is a good resource.
+
+# Contacting the user community
+
+- **Mailing List**:
+  If your question isn't answered in the FAQ, the manual, or the Wiki,
+  the [**`{{ site.help_email }}`**][8] mailing list is a good resource.
 
-<div class="row">
-<div class="columns medium-8">
-<form action="http://octave.1599824.n4.nabble.com/template/NamlServlet.jtp"><input name="macro" value="search_page" type="hidden">
-<input name="node" value="1599825" type="hidden">
-<div class="row collapse">
-<div class="columns small-7">
-<input id="query" name="query" size="25">
-</div>
-<div class="columns small-3">
-<select name="days">
-<option value="0" selected="">all dates</option>
-<option value="1">past 24 hours</option>
-<option value="7">past week</option>
-<option value="30">past month</option>
-<option value="90">past 3 months</option>
-<option value="180">past 6 months</option>
-<option value="365">past year</option>
-</select>
-</div>
-<div class="columns small-2">
-<input class="button postfix" value="Search" type="submit">
-</div>
-</div>
+  You can also [subscribe][9] to `{{ site.help_email }}` or try to search in the
+  mailing list archive for an answer:
+  <form action="http://octave.1599824.n4.nabble.com/template/NamlServlet.jtp">
+  <input type="hidden" name="macro" value="search_page" />
+  <input type="hidden" name="node" value="1599825" />
+  <input id="query" name="query" size="25" />
+  <select name="days">
+    <option value="0" selected>all dates</option>
+    <option value="1">past 24 hours</option>
+    <option value="7">past week</option>
+    <option value="30">past month</option>
+    <option value="90">past 3 months</option>
+    <option value="180">past 6 months</option>
+    <option value="365">past year</option>
+  </select>
+  <input type="submit" value="Search" />
+  </form>
+
 
-</form>
-</div>
-</div>
-
-[Advanced Search](http://octave.1599824.n4.nabble.com/template/NamlServlet.jtp?macro=adv_search_page&node=1599825)
+  <p>
+  <div class="alert">
+  {% octicon stop class:"octicon-stop-octave" %}
+  Please do <strong>not</strong> send any bug reports to the
+  <samp>{{ site.help_email }}</samp> mailing list.
+  Most Octave users do not want to receive bug reports.
+  </div>
+  </p>
 
-#### Chat
-
-Too impatient for email? You can find Octave developers and users on the [#octave channel at irc.freenode.net](http://webchat.freenode.net/?channels=octave&uio=MT1mYWxzZSYyPXRydWUmMTI9dHJ1ZQda). The atmosphere is relaxed and chat isn't restricted to matters strictly pertaining to Octave.
+- **IRC Chat**:
+  Too impatient for email? You can find Octave developers and users on the
+  [`{{ site.irc_channel }}` channel][10] at [`{{ site.irc_network }}`][11].
+  The atmosphere is relaxed and chat isn't restricted to matters strictly
+  pertaining to Octave.
 
-### Reporting Bugs
-
-If you think you've found a bug, you are encouraged to [report it]({{ "/bugs/" | prepend: site.baseurl }}).
+[8]: mailto:{{ site.help_email }}
+[9]: https://lists.gnu.org/mailman/listinfo/help-octave
+[10]: http://webchat.freenode.net/?channels=octave&amp;uio=MT1mYWxzZSYyPXRydWUmMTI9dHJ1ZQda
+[11]: http://freenode.net