# HG changeset patch # User jwe # Date 846791537 0 # Node ID a28ed603c65ccbb0cfbaf47161f6412ce944846e # Parent d8d35d1f4a31ed37ca91133652f450227b43583e [project @ 1996-10-31 19:49:29 by jwe] diff -r d8d35d1f4a31 -r a28ed603c65c ChangeLog --- a/ChangeLog Thu Oct 31 19:49:12 1996 +0000 +++ b/ChangeLog Thu Oct 31 19:52:17 1996 +0000 @@ -1,5 +1,11 @@ +Thu Oct 31 13:50:06 1996 John W. Eaton + + * octMakefile.in (DISTFILES): Add NEWS.[0-9]. + Wed Oct 30 01:04:13 1996 John W. Eaton + * Version 1.90. + * configure.in: Default is now no internal bounds checking. * Makefile.in (all): Fix message to say 2.7.2, not 2.7.0. diff -r d8d35d1f4a31 -r a28ed603c65c NEWS --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/NEWS Thu Oct 31 19:52:17 1996 +0000 @@ -0,0 +1,367 @@ +Summary of changes for version 2.0: +---------------------------------- + + * 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. [This feature should be better documented by the + time 2.0 is released]. + + * 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. + + * 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. + + * 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 + more -- turn the pager on or off + gammaln -- alias for lgamma + + * New audio functions from Andreas Weingessel + . + + 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 + pipe -- create an interprocess channel + + * Other new functions: + + atexit -- register functions to be called when Octave exits + putenv -- define an environment variable + meshgrid -- compatible with Matlab's meshgrid function + tilde_expand -- perform tilde expansion on string + completion_matches -- perform command completion on string + + * 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. + +See NEWS.1 for old news. diff -r d8d35d1f4a31 -r a28ed603c65c doc/ChangeLog --- a/doc/ChangeLog Thu Oct 31 19:49:12 1996 +0000 +++ b/doc/ChangeLog Thu Oct 31 19:52:17 1996 +0000 @@ -1,3 +1,9 @@ +Wed Oct 30 17:20:28 1996 John W. Eaton + + * Version 1.90. + + * Makefile.in (DISTFILES): Add ChangeLog. + Sat Oct 12 13:38:49 1996 John W. Eaton * Makefile.in (maintainer-clean): Don't depend on distclean. diff -r d8d35d1f4a31 -r a28ed603c65c doc/Makefile.in --- a/doc/Makefile.in Thu Oct 31 19:49:12 1996 +0000 +++ b/doc/Makefile.in Thu Oct 31 19:52:17 1996 +0000 @@ -20,7 +20,7 @@ SOURCES = -DISTFILES = Makefile.in conf.texi.in texinfo.tex +DISTFILES = Makefile.in ChangeLog conf.texi.in texinfo.tex SUBDIRS = faq interpreter liboctave refcard diff -r d8d35d1f4a31 -r a28ed603c65c info/ChangeLog --- a/info/ChangeLog Thu Oct 31 19:49:12 1996 +0000 +++ b/info/ChangeLog Thu Oct 31 19:52:17 1996 +0000 @@ -1,5 +1,7 @@ Wed Oct 30 11:49:27 1996 John W. Eaton + * Makefile.in (DISTFILES): Add ChangeLog. + * Makefile.in (VPATH): Don't add $(common). (common): Delete definition. (getopt.c, getopt1.c): Restore files. diff -r d8d35d1f4a31 -r a28ed603c65c info/Makefile.in --- a/info/Makefile.in Thu Oct 31 19:49:12 1996 +0000 +++ b/info/Makefile.in Thu Oct 31 19:52:17 1996 +0000 @@ -62,8 +62,8 @@ TEXI = info-stnd.texi info.texi userdoc.texi -DISTFILES = Makefile.in README NEWS info.1 configure.in acconfig.h \ - config.h.in configure mkinstalldirs \ +DISTFILES = Makefile.in ChangeLog README NEWS info.1 configure.in \ + acconfig.h config.h.in configure mkinstalldirs \ $(SOURCES) $(INCLUDES) $(TEXINFO) GETOPT_OBJS = getopt.o getopt1.o diff -r d8d35d1f4a31 -r a28ed603c65c libcruft/ChangeLog --- a/libcruft/ChangeLog Thu Oct 31 19:49:12 1996 +0000 +++ b/libcruft/ChangeLog Thu Oct 31 19:52:17 1996 +0000 @@ -1,3 +1,12 @@ +Wed Oct 30 17:20:14 1996 John W. Eaton + + * Version 1.90. + + * Makefile.in (DISTFILES): Add ChangeLog. + + * misc/Makefile.in: Make pic/machar.o using special rule. + Use CPPFLAGS, not CPP_FLAGS. + Thu Oct 24 20:22:47 1996 John W. Eaton * Makefile.in (CRUFT_OBJ): No special treatment for d1mach.o. diff -r d8d35d1f4a31 -r a28ed603c65c libcruft/Makefile.in --- a/libcruft/Makefile.in Thu Oct 31 19:49:12 1996 +0000 +++ b/libcruft/Makefile.in Thu Oct 31 19:52:17 1996 +0000 @@ -30,7 +30,7 @@ SUBDIRS = $(CRUFT_DIRS) -DISTFILES = Makefile.in Makerules.in $(SOURCES) STOP.patch +DISTFILES = Makefile.in ChangeLog Makerules.in $(SOURCES) STOP.patch all: $(SUBDIRS) libcruft.a stamp-shared .PHONY: all diff -r d8d35d1f4a31 -r a28ed603c65c libcruft/misc/Makefile.in --- a/libcruft/misc/Makefile.in Thu Oct 31 19:49:12 1996 +0000 +++ b/libcruft/misc/Makefile.in Thu Oct 31 19:52:17 1996 +0000 @@ -22,7 +22,7 @@ ifeq ($(SHARED_LIBS), true) ifdef CPICFLAG - CPICDEP := pic/d1mach.o pic/dostop.o + CPICDEP := pic/machar.o pic/dostop.o endif ifdef CXXPICFLAG CXXPICDEP := pic/f77-extern.o pic/lo-error.o @@ -38,7 +38,10 @@ XALL_CFLAGS = $(patsubst -O%, , $(ALL_CFLAGS)) machar.o: $(srcdir)/machar.c - $(XCC) -c $(CPP_FLAGS) $(XALL_CFLAGS) -DDP $(srcdir)/machar.c + $(XCC) -c $(CPPFLAGS) $(XALL_CFLAGS) -DDP $< + +pic/machar.o: $(srcdir)/machar.c + $(XCC) -c $(CPPFLAGS) $(XALL_CFLAGS) -DDP $< -o $@ distclean:: rm -f d1mach.f gen-d1mach diff -r d8d35d1f4a31 -r a28ed603c65c liboctave/ChangeLog --- a/liboctave/ChangeLog Thu Oct 31 19:49:12 1996 +0000 +++ b/liboctave/ChangeLog Thu Oct 31 19:52:17 1996 +0000 @@ -1,5 +1,9 @@ Wed Oct 30 11:42:58 1996 John W. Eaton + * Version 1.90. + + * Makefile.in (DISTFILES): Add ChangeLog. + * cmd-hist.cc: Only include fcntl.h if HAVE_FCNTL_H. * Matrix-ext.cc: Include , not . diff -r d8d35d1f4a31 -r a28ed603c65c liboctave/Makefile.in --- a/liboctave/Makefile.in Thu Oct 31 19:49:12 1996 +0000 +++ b/liboctave/Makefile.in Thu Oct 31 19:52:17 1996 +0000 @@ -73,7 +73,7 @@ EXTRAS := mx-inlines.cc -DISTFILES := Makefile.in safe-xstat.cin safe-xstat.hin \ +DISTFILES := Makefile.in ChangeLog safe-xstat.cin safe-xstat.hin \ $(SOURCES) $(INCLUDES) $(EXTRAS) MAKEDEPS_1 := $(patsubst %.cc, %.d, $(SOURCES)) diff -r d8d35d1f4a31 -r a28ed603c65c octMakefile.in --- a/octMakefile.in Thu Oct 31 19:49:12 1996 +0000 +++ b/octMakefile.in Thu Oct 31 19:52:17 1996 +0000 @@ -23,8 +23,8 @@ acconfig.h config.h.bot install-sh DISTFILES = $(CONF_DISTFILES) \ - BUGS COPYING INSTALL INSTALL.OCTAVE NEWS PROJECTS README \ - README.NLP ROADMAP SENDING-PATCHES THANKS move-if-change \ + BUGS COPYING INSTALL INSTALL.OCTAVE NEWS NEWS.[0-9] PROJECTS \ + README README.NLP ROADMAP SENDING-PATCHES THANKS move-if-change \ octave.sh octave-bug.in doinstall.sh mkinstalldirs mkoctfile.in \ MAKEINFO.PATCH ChangeLog ChangeLog.[0-9] diff -r d8d35d1f4a31 -r a28ed603c65c scripts/ChangeLog --- a/scripts/ChangeLog Thu Oct 31 19:49:12 1996 +0000 +++ b/scripts/ChangeLog Thu Oct 31 19:52:17 1996 +0000 @@ -1,3 +1,9 @@ +Wed Oct 30 17:19:45 1996 John W. Eaton + + * Version 1.90. + + * Makefile.in (DISTFILES): Add ChangeLog. + Thu Oct 10 17:31:01 1996 John W. Eaton * plot/subplot.m, plot/multiplot.m, plot/mplot.m: diff -r d8d35d1f4a31 -r a28ed603c65c scripts/Makefile.in --- a/scripts/Makefile.in Thu Oct 31 19:49:12 1996 +0000 +++ b/scripts/Makefile.in Thu Oct 31 19:52:17 1996 +0000 @@ -22,8 +22,8 @@ SOURCES = # *.m -DISTFILES = Makefile.in $(SOURCES) configure.in configure \ - mkinstalldirs +DISTFILES = Makefile.in ChangeLog $(SOURCES) configure.in \ + configure mkinstalldirs SUBDIRS = audio control elfun general image io linear-algebra \ miscellaneous plot polynomial set signal specfun \ diff -r d8d35d1f4a31 -r a28ed603c65c src/ChangeLog --- a/src/ChangeLog Thu Oct 31 19:49:12 1996 +0000 +++ b/src/ChangeLog Thu Oct 31 19:52:17 1996 +0000 @@ -1,5 +1,9 @@ Wed Oct 30 01:06:19 1996 John W. Eaton + * Version 1.90. + + * Makefile.in (DISTFILES): Add ChangeLog. + * ov-range.cc (octave_range::convert_to_str): New function. * ov-str-mat.h (octave_char_matrix_str::char_matrix_value): diff -r d8d35d1f4a31 -r a28ed603c65c src/Makefile.in --- a/src/Makefile.in Thu Oct 31 19:49:12 1996 +0000 +++ b/src/Makefile.in Thu Oct 31 19:52:17 1996 +0000 @@ -182,7 +182,7 @@ LIBS = @LIBS@ -DISTFILES = Makefile.in mkdefs mkbuiltins mk-oct-links.in \ +DISTFILES = Makefile.in ChangeLog mkdefs mkbuiltins mk-oct-links.in \ defaults.h.in oct-conf.h.in octave.gperf oct-gperf.h \ octave.cc parse.cc lex.cc y.tab.h \ $(INCLUDES) $(DLD_SRC) $(SOURCES) $(TEMPLATE_SRC) $(TI_SRC) diff -r d8d35d1f4a31 -r a28ed603c65c test/ChangeLog --- a/test/ChangeLog Thu Oct 31 19:49:12 1996 +0000 +++ b/test/ChangeLog Thu Oct 31 19:52:17 1996 +0000 @@ -1,3 +1,9 @@ +Wed Oct 30 17:19:12 1996 John W. Eaton + + * Version 1.90. + + * Makefile.in (DISTFILES): Add ChangeLog. + Fri Feb 9 21:40:49 1996 John W. Eaton * Makefile.in (OCTAVE_SCRIPT_PATH): Add ../src directory (for .oct diff -r d8d35d1f4a31 -r a28ed603c65c test/Makefile.in --- a/test/Makefile.in Thu Oct 31 19:49:12 1996 +0000 +++ b/test/Makefile.in Thu Oct 31 19:52:17 1996 +0000 @@ -16,7 +16,7 @@ SOURCES = -DISTFILES = Makefile.in $(SOURCES) +DISTFILES = Makefile.in $(SOURCES) ChangeLog SUBDIRS =