From help-octave-request at che dot utexas dot edu Mon Nov 8 20:54:06 1993 Subject: Octave version 0.79 released From: John Eaton To: help-octave Date: Mon, 08 Nov 93 20:51:40 CST Octave version 0.79 is now available for ftp from ftp.che.utexas.edu in the directory /pub/octave. Compressed and gzipped tar files are available, as are diffs relative to version 0.77. PLEASE NOTE: We are only distributing gzipped files because we no longer have room to distribute both compressed and gzipped files. Binaries for DECstation, SPARCstation, and i486 Linux systems are also available. Binaries for other systems will be made available as time permits, or as others make them available to us. If you would like help out by making binaries available for other systems, please contact bug-octave at che dot utexas dot edu dot Summary of changes for version 0.79: ----------------------------------- * 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. Summary of changes for version 0.78: ----------------------------------- * 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 builtin 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. -- John W. Eaton | Among other things, we have added the missing semicolon. jwe at che dot utexas dot edu| | -- Jim Blandy, announcing Emacs 19.15.