diff WWW/NEWS-2.html @ 2590:c6cbc2041469

[project @ 1996-12-14 00:24:47 by jwe]
author jwe
date Sat, 14 Dec 1996 00:24:47 +0000
parents
children cdc8e0f3413a
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WWW/NEWS-2.html	Sat Dec 14 00:24:47 1996 +0000
@@ -0,0 +1,445 @@
+<!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</h2>
+
+<pre>
+  * The set and show commands for setting and displaying gnuplot
+    parameters have been replaced by gset and gshow.  This change will
+    probably break lots of things, but it is necessary to allow for
+    compatibility with the Matlab graphics and GUI commands in a
+    future version of Octave.  (For now, the old set and show commands
+    do work, but they print an annoying warning message to try to get
+    people to switch to using gset.)
+
+  * Octave has been mostly ported to Windows NT and Windows 95 using
+    the beta 17 release of the Cygnus GNU-WIN32 tools.  Not everything
+    works, but it is usable.  See the file README.WINDOWS for more
+    information.
+
+  * Dynamic linking works on more systems using dlopen() and friends
+    (most modern Unix systems) or shl_load() and friends (HP/UX
+    systems).  A simple example is provided in examples/hello.cc.
+    For this feature to work, you must configure Octave with
+    --enable-shared.  You may also need to have a shared-library
+    version of libg++ and libstdc++.
+
+  * New data types can be added to Octave by writing a C++ class.  On
+    systems that support dynamic linking, new data types can be added
+    to an already running Octave binary.  A simple example appears in
+    the file examples/make_int.cc.  Other examples are the standard
+    Octave data types defined in the files src/ov*.{h,cc} and
+    src/op-*.cc.
+
+  * The configure option --enable-bounds-check turns on bounds
+    checking on element references for Octave's internal array and
+    matrix classes.  It's enabled by default.  To disable this
+    feature, configure Octave with --disable-bounds-check.
+
+  * The C-style I/O functions (fopen, fprintf, etc.) have been
+    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.
+
+  * Octave can now read files that contain columns of numbers only,
+    with no header information.  The name of the loaded variable is
+    constructed from the file name.  Each line in the file must have
+    the same number of elements.
+
+  * The interface to the pager has changed.  The new built-in variable
+    `page_output_immediately' controls when Octave sends output to the
+    pager.  If it is nonzero, Octave sends output to the pager as soon
+    as it is available.  Otherwise, Octave buffers its output and
+    waits until just before the prompt is printed to flush it to the
+    pager.
+
+  * Expressions of the form
+
+      A(i,j) = x
+
+    where X is a scalar and the indices i and j define a matrix of
+    elements now work as you would expect rather than giving an error.
+    I am told that this is how Matlab 5.0 will behave when it is
+    released.
+
+  * Indexing of character strings now works.
+
+  * The echo command has been implemented.
+
+  * The document command is now a regular function.
+
+  * New method for handling errors:
+
+      try
+        BODY
+      catch
+        CLEANUP
+      end_try_catch
+
+    Where BODY and CLEANUP are both optional and may contain any
+    Octave expressions or commands.  The statements in CLEANUP are
+    only executed if an error occurs in BODY.
+
+    No warnings or error messages are printed while BODY is
+    executing.  If an error does occur during the execution of BODY,
+    CLEANUP can access the text of the message that would have been
+    printed in the builtin constant __error_text__.  This is the same
+    as eval (TRY, CATCH) (which may now also use __error_text__) but
+    it is more efficient since the commands do not need to be parsed
+    each time the TRY and CATCH statements are evaluated.
+
+  * Octave no longer parses the help command by grabbing everything
+    after the keyword `help' until a newline character is read.  To
+    get help for `;' or `,', now, you need to use the command
+    `help semicolon' or `help comma'.
+
+  * Octave's parser now does some simple constant folding.  This means
+    that expressions like 3*i are now evaluated only once, when a
+    function is compiled, and the right hand side of expressions like
+    a = [1,2;3,4] are treated as true matrix constants rather than
+    lists of elements which must be evaluated each time they are
+    needed.
+
+  * Built-in variables that can take values of "true" and "false" can
+    now also be set to any nonzero scalar value to indicate "true",
+    and 0 to indicate "false".
+
+  * New built-in variables `history_file', `history_size', and
+    `saving_history'.
+
+  * New built-in variable `string_fill_char' specifies the character
+    to fill with when creating arrays of strings.
+
+  * If the new built-in variable `gnuplot_has_frames' is nonzero,
+    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.
+
+  * The new plot function `figure' allows multiple plot windows when
+    using newer versions of gnuplot with X11.
+
+  * Octave now notices when the plotter has exited unexpectedly.
+
+  * New built-in variable `warn_missing_semicolon'.  If nonzero, Octave
+    will warn when statements in function definitions don't end in
+    semicolons.  The default value is 0.
+
+  * Octave now attempts to continue after floating point exceptions
+    or out-of-memory errors.
+
+  * If Octave crashes, it now attempts to save all user-defined
+    variables in a file named `octave-core' in the current directory
+    before exiting.
+
+  * It is now possible to get the values of individual option settings
+    for the dassl, fsolve, lsode, npsol, qpsol, and quad functions
+    using commands like
+
+      dassl_reltol = dassl_options ("relative tolerance");
+
+  * The svd() function no longer computes the left and right singular
+    matrices unnecessarily.  This can significantly improve
+    performance for large matrices if you are just looking for the  
+    singular values.
+
+  * The filter() function is now a built-in function.
+
+  * New function randn() returns a pseudo-random number from a normal
+    distribution.  The rand() and randn() functions have separate
+    seeds and generators.
+
+  * Octave's command-line arguments are now available in the built-in
+    variable `argv'.  The program name is also available in the
+    variables `program_invocation_name' and `program_name'.  If
+    executing a script from the command line (e.g., octave foo.m) or
+    using the `#! /bin/octave' hack, the program name is set to the
+    name of the script.
+
+  * New built-in variable `completion_append_char' used as the
+    character to append to successful command-line completion
+    attempts.  The default is " " (a single space).
+
+  * Octave now uses a modified copy of the readline library from
+    version 1.14.5 of GNU bash.
+
+  * In prompt strings, `\H' expands to the whole host name.
+
+  * New built-in variable `beep_on_error'.  If nonzero, Octave will try
+    to ring your terminal's bell before printing an error message.
+    The default value is 0.
+
+  * For functions defined from files, the type command now prints the
+    text of the file.  You can still get the text reconstructed from
+    the parse tree by using the new option -t (-transformed).
+
+  * New command-line argument --traditional sets the following
+    preference variables for compatibility with Matlab:
+
+      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"
+
+  * New functions:
+
+      readdir  -- returns names of files in directory as array of strings
+      mkdir    -- create a directory
+      rmdir    -- remove a directory
+      rename   -- rename a file
+      unlink   -- delete a file
+      umask    -- set permission mask for file creation
+      stat     -- get information about a file
+      lstat    -- get information about a symbolic link
+      glob     -- perform filename globbing
+      fnmatch  -- match strings with filename globbing patterns
+      more     -- turn the pager on or off
+      gammaln  -- alias for lgamma
+
+  * New audio functions from Andreas Weingessel
+    <Andreas.Weingessel@ci.tuwien.ac.at>.
+
+      lin2mu     -- linear to mu-law encoding
+      loadaudio  -- load an audio file to a vector
+      mu2lin     -- mu-law to linear encoding
+      playaudio  -- play an audio file
+      record     -- record sound and store in vector
+      saveaudio  -- save a vector as an audio file
+      setaudio   -- executes mixer shell command
+
+  * New plotting functions from Vinayak Dutt.  Ones dealing with
+    multiple plots on one page require features from gnuplot 3.6beta
+    (or later).
+
+      bottom_title  -- put title at the bottom of the plot
+      mplot         -- multiplot version of plot
+      multiplot     -- switch multiple-plot mode on or off
+      oneplot       -- return to one plot per page
+      plot_border   -- put a border around plots
+      subplot       -- position multiple plots on a single page
+      subwindow     -- set subwindow position for next plot
+      top_title     -- put title at the top of the plot
+      zlabel        -- put a label on the z-axis
+
+  * New string functions
+
+      bin2dec  -- convert a string of ones and zeros to an integer
+      blanks   -- create a string of blanks
+      deblank  -- delete trailing blanks
+      dec2bin  -- convert an integer to a string of ones and zeros
+      dec2hex  -- convert an integer to a hexadecimal string
+      findstr  -- locate occurrences of one string in another
+      hex2dec  -- convert a hexadecimal string to an integer
+      index    -- return position of first occurrence a string in another
+      rindex   -- return position of last occurrence a string in another
+      split    -- divide one string into pieces separated by another
+      str2mat  -- create a string matrix from a list of strings
+      strrep   -- replace substrings in a string
+      substr   -- extract a substring
+
+    The following functions return a matrix of ones and zeros.
+    Elements that are nonzero indicate that the condition was true for
+    the corresponding character in the string array.
+
+      isalnum   -- letter or a digit
+      isalpha   -- letter
+      isascii   -- ascii
+      iscntrl   -- control character
+      isdigit   -- digit
+      isgraph   -- printable (but not space character)
+      islower   -- lower case
+      isprint   -- printable (including space character)
+      ispunct   -- punctuation
+      isspace   -- whitespace
+      isupper   -- upper case
+      isxdigit  -- hexadecimal digit
+
+    These functions return new strings.
+
+      tolower  -- convert to lower case
+      toupper  -- convert to upper case
+
+  * New function, fgetl.  Both fgetl and fgets accept an optional
+    second argument that specifies a maximum number of characters to
+    read, and the function fgets is now compatible with Matlab.
+
+  * Printing in hexadecimal format now works (format hex).  It is also
+    possible to print the internal bit representation of a value
+    (format bit).  Note that these formats are only implemented for
+    numeric values.
+
+  * Additional structure features:
+
+    -- Name completion now works for structures.
+
+    -- Values and names of structure elements are now printed by
+       default.  The new built-in variable `struct_levels_to_print'
+       controls the depth of nested structures to print.  The default
+       value is 2.
+
+    -- New functions:
+
+       struct_contains (S, NAME) -- returns 1 if S is a structure with
+                                    element NAME; otherwise returns 0.
+
+       struct_elements (S)       -- returns the names of all elements
+                                    of structure S in an array of strings. 
+
+  * New io/subprocess functions:
+
+      fputs    -- write a string to a file with no formatting
+      popen2   -- start a subprocess with 2-way communication
+      mkfifo   -- create a FIFO special file
+      popen    -- open a pipe to a subprocess
+      pclose   -- close a pipe from a subprocess
+      waitpid  -- check the status of or wait for subprocesses
+
+  * New time functions:
+
+      asctime    -- format time structure according to local format
+      ctime      -- equivalent to `asctime (localtime (TMSTRUCT))'
+      gmtime     -- return time structure corresponding to UTC
+      localtime  -- return time structure corresponding to local time zone
+      strftime   -- print given time structure using specified format
+      time       -- return current time
+
+    The `clock' and `date' functions are now implemented in M-files
+    using these basic functions.
+
+  * Access to additional Unix system calls:
+
+      dup2     -- duplicate a file descriptor
+      exec     -- replace current process with a new process
+      fcntl    -- control open file descriptors
+      fork     -- create a copy of the current process
+      getpgrp  -- return the process group id of the current process
+      getpid   -- return the process id of the current process
+      getppid  -- return the process id of the parent process
+      getuid   -- return the real user id of the current process
+      getgid   -- return the real group id of the current process
+      geteuid  -- return the effective user id of the current process
+      getegid  -- return the effective group id of the current process
+      pipe     -- create an interprocess channel
+
+  * Other new functions:
+
+      commutation_matrix  -- compute special matrix form
+      duplication_matrix  -- compute special matrix form
+      common_size.m       -- bring arguments to a common size
+      completion_matches  -- perform command completion on string
+      tilde_expand        -- perform tilde expansion on string
+
+      meshgrid  -- compatible with Matlab's meshgrid function
+      tmpnam    -- replaces octave_tmp_file_name
+      atexit    -- register functions to be called when Octave exits
+      putenv    -- define an environment variable
+      bincoeff  -- compute binomial coefficients
+      nextpow2  -- compute the next power of 2 greater than a number
+      detrend   -- remove a best fit polynomial from data
+      erfinv    -- inverse error function
+      shift     -- perform a circular shift on the elements of a matrix
+      pow2      -- compute 2 .^ x
+      log2      -- compute base 2 logarithms
+      diff      -- compute differences of matrix elements
+      vech      -- stack columns of a matrix below the diagonal
+      vec       -- stack columns of a matrix to form a vector
+      xor       -- compute exclusive or
+
+  * Functions for getting info from the password database on Unix systems:
+
+      getpwent  -- read entry from password-file stream, opening if necessary
+      getpwuid  -- search for password entry with matching user ID
+      getpwnam  -- search for password entry with matching username
+      setpwent  -- rewind the password-file stream
+      endpwent  -- close the password-file stream
+
+  * Functions for getting info from the group database on Unix systems:
+
+      getgrent  -- read entry from group-file stream, opening if necessary
+      getgrgid  -- search for group entry with matching group ID
+      getgrnam  -- search for group entry with matching group name
+      setgrent  -- rewind the pgroup-file stream
+      endgrent  -- close the group-file stream
+
+  * The New function octave_config_info returns a structure containing
+    information about how Octave was configured and compiled.
+
+  * New function getrusage returns a structure containing system
+    resource usage statistics.  The `cputime' function is now defined
+    in an M-file using getrusage.
+
+  * The info reader is now a separate binary that runs as a
+    subprocess.  You still need the info reader distributed with
+    Octave though, because there are some new command-line arguments
+    that are not yet available in the public release of Info.
+
+  * There is a new built-in variable, INFO_PROGRAM, which is used as
+    the name of the info program to run.  Its initial value is
+    $OCTAVE_HOME/lib/octave/VERSION/exec/ARCH/info, but that value can
+    be overridden by the environment variable OCTAVE_INFO_PROGRAM, or
+    the command line argument --info-program NAME, or by setting the
+    value of INFO_PROGRAM in a startup script.
+
+  * There is a new built-in variable, EXEC_PATH, which is used as
+    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).
+
+  * If it is present, Octave will now use an `ls-R' database file to
+    speed up recursive path searching.  Octave looks for a file called
+    ls-R in the directory specified by the environment variable
+    OCTAVE_DB_DIR.  If that is not set but the environment variable
+    OCTAVE_HOME is set, Octave looks in $OCTAVE_HOME/lib/octave.
+    Otherwise, Octave looks in the directory $datadir/octave (normally
+    /usr/local/lib/octave).
+
+  * New examples directory.
+
+  * There is a new script, mkoctfile, that can be used to create .oct
+    files suitable for dynamic linking.
+
+  * Many more bug fixes.
+
+  * ChangeLogs are now kept in each subdirectory.
+</pre>
+
+</body>
+</html>