changeset 3154:352a80c32765

[project @ 1998-02-14 19:17:59 by jwe]
author jwe
date Sat, 14 Feb 1998 19:18:37 +0000
parents 94fc53d82561
children 1016520a9d38
files Announce INSTALL.Windows README.Windows doc/faq/Octave-FAQ.texi doc/interpreter/emacs.texi liboctave/Array-idx.h liboctave/ChangeLog octMakefile.in
diffstat 8 files changed, 217 insertions(+), 114 deletions(-) [+]
line wrap: on
line diff
--- a/Announce
+++ b/Announce
@@ -1,4 +1,4 @@
-Subject: ANNOUNCE: Octave Version 2.0.9 released
+Subject: ANNOUNCE: Octave Version 2.0.10 released
 
 Octave version 2.0.10 is now available for ftp from ftp.che.wisc.edu
 in the directory /pub/octave.  Diffs from the previous have not been
new file mode 100644
--- /dev/null
+++ b/INSTALL.Windows
@@ -0,0 +1,112 @@
+Instructions for installing Octave on Windows NT/95 systems using the
+beta 18 release of the gnu-win32 tools from Cygnus Support.
+
+1. Install the Cygnus gnu-win32 tools.  You only need the user tools,
+   but you can install the full development kit instead (either will
+   work -- the development kit contains all the user tools plus the
+   GNU compilers and other development tools that are not needed to
+   just run Octave).  The gnu-win32 tools are available from
+   ftp://ftp.cygnus.com/pub/gnu-win32/latest, and also from
+   ftp://ftp.che.wisc.edu/pub/octave/BINARIES/gnu-win32.
+
+     -- Download usertools.exe or cdk.exe.
+
+     -- Install the tools by running the file usertools.exe (or
+        cdk.exe) and following the directions.  The default install
+        location is /gnuwin32/b18 (the rest of the examples in this
+        document assume that you've used the default location).
+
+     -- Create a /bin directory and put a copy of sh.exe there.  You
+        can find the sh.exe file in /gnuwin32/b18/H-i386-cygwin32/bin.
+
+     -- Create a /tmp directory.
+
+     -- Add
+
+          C:\gnuwin32\b18\H-i386-cygwin32\bin 
+
+        to your $PATH.
+
+     -- Create a /etc directory and put a copy of the termcap file
+        there.  You can find a suitable termcap file in the directory
+        /gnuwin32/b18/H-i386-cygwin32/etc.
+
+     -- There is a bug in the main gnu-win32 dll that will cause
+        Octave to fail.  You need to fix it by either editing the file
+        (using an editor like Emacs that can handle binary files) or
+        by replacing it with the file cygwin-setpwent-fixed.dll from
+        ftp://ftp.che.wisc.edu/pub/octave/BINARIES/gnu-win32.
+
+        To fix the problem by editing the file, open the file
+        /gnuwin32/b18/H-i386-cygwin32/bin/cygwin.dll and replace the
+        string setpwend with setpwent.  This change needs to be made
+        in three places in the same file.  Next, copy the fixed file to
+        /gnuwin32/b18/H-i386-cygwin32/i386-cygwin32/lib/cygwin.dll.
+
+        To fix the problem by replacing the file with a version that's
+        already been fixed, download the file cygwin-setpwent-fixed.dll
+        from ftp://ftp.che.wisc.edu/pub/octave/BINARIES/gnu-win32 and
+        copy it to /gnuwin32/b18/H-i386-cygwin32/bin/cygwin.dll and
+        /gnuwin32/b18/H-i386-cygwin32/i386-cygwin32/lib/cygwin.dll.
+
+2. Install less for gnuwin32.  A copy is available from
+   ftp://ftp.che.wisc.edu/pub/octave/BINARIES/gnu-win32
+
+     -- Download the file less-gnu-win32.tar.gz.
+
+     -- Install it along with the gnu-win32 tools.  Change your
+        directory to /gnuwin32/b18/H-i386-cygwin32/bin and untar the
+        less-gnu-win32.tar.gz file (bash syntax):
+
+          tar zxf /path/to/less-gnu-win32.tar.gz
+
+     -- Set the environment variable TERM to linux.
+
+3. Install Octave.
+
+     -- Download the file octave-2.0.10-i386-pc-cygwin32.tar.gz from 
+        ftp://ftp.che.wisc.edu/pub/octave/BINARIES/gnu-win32.
+
+     -- Untar the distribution:
+
+          tar zxf octave-2.0.10-i386-pc-cygwin32.tar.gz
+
+        The files will be unpacked into a subdirectory called
+        octave-2.0.10-i386-pc-cygwin32.
+
+     -- Change your directory to octave-2.0.10-i386-pc-cygwin32 and
+        install the files using the command ./install-octave (running
+        bash).
+
+     -- The default installation directory is /octave.  If you choose
+        a different installation directory, you will have to set the
+        environment variable OCTAVE_HOME to the name of that directory
+        (using Unix file name syntax) in order for Octave to work.
+
+     -- Add C:\octave\bin to your path.
+
+     -- Set the environment variable TERM to linux.
+
+     -- Optionally set the environment variables HOME (for your home
+        direoctory using Unix file name syntax) and USER (for your user
+        name).
+
+Note that Octave requires gnuplot for plotting, but the normal Windows
+version of gnuplot will not work because it only reads from the GUI
+and refuses to read input from stdin.  Mumit Khan has written a patch
+that fixes the problem, but the gnuplot license does not allow us to
+distribute modified versions of gnuplot in binary form.  The patch is
+available from http://www.xraylith.wisc.edu/~khan/software/gnu-win32.
+
+Eventually, I hope to automate most of this process and make it much
+simpler.  Please contact me if you are interested in helping out with
+this task.
+
+Thanks,
+
+John W. Eaton
+jwe@bevo.che.wisc.edu
+University of Wisconsin-Madison
+Department of Chemical Engineering
+
+Fri Feb 13 19:24:01 1998
--- a/README.Windows
+++ b/README.Windows
@@ -1,62 +1,44 @@
-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.  If you would like to volunteer to work on
-improving this port, please contact bug-octave@bevo.che.wisc.edu.
+Octave has been ported to Windows NT and Windows 95 using the beta 18
+release of the Cygnus gnu-win32 tools.  If you would like to volunteer
+to work on improving this port, please contact bug-octave@bevo.che.wisc.edu.
+
+The directory ftp://ftp.che.wisc.edu/pub/octave/BINARIES/gnu-win32
+contains a binary distribution of Octave for Windows NT/95 along with
+installation instructions.  Unless you are interested in doing some
+hacking, you should use the binary releases.
 
 Here is a list of current problems (and workarounds, where available).
 
-* There is no binary version of Octave available for Windows NT or
-  Windows 95.  One will probably be released when the port is a little
-  more stable.
-
-* To compile and install Octave on a Windows NT or Windows 95 system,
-  you will need to get the beta 17 release of the GNU-WIN32 tools.  They
-  are available from ftp://ftp.cygnus.com/pub/gnu-win32.
+* To compile and install Octave on a Windows NT/95 system,
+  you will need to get the beta 18 release of the gnu-win32 tools.
+  They are available from ftp://ftp.cygnus.com/pub/gnu-win32.
 
-* There is a conflict between the files /cygnus/include/g++/String.h and
-  /cygnus/H-i386-cygwin32/i386-cygwin32/include/stringh.  You should
-  rename or remove /cygnus/include/g++/String.h.  (These file names
-  assume that you have installed the GNU-WIN32 tools in /cygnus).
+* There is a conflict between /gnu-win32/b18/include/g++/String.h
+  and /gnu-win32/b18/H-i386-cygwin32/i386-cygwin32/include/string.h.
+  You should rename or remove /gnu-win32/b18/include/g++/String.h.
+  (These file names assume that you have installed the gnu-win32 tools
+  in /gnu-win32/b18).
 
-* On Windows 95 systems, there is a bug that causes redirections to
-  /dev/null to fail.  You can work around the problem by substituting
-  /dev/nul for /dev/null in all of the files that use it.  (This
-  problem is fixed in the b17.1 release of the tools.)
-
-* You will need to have f2c and libf2c.a or g77 installed.  You can get
-  a copy of f2c from ftp://netlib.att.com/netlib/f2c.
+* You will need to have f2c and libf2c.a or g77 installed.  I would
+  recommend using g77.  Mumit Khan has directions for building g77 at
+  http://www.xraylith.wisc.edu/~khan/software/gnu-win32/g77.html.
+  Another solution is to use egcs, which includes g77.  The egcs
+  compiler is available from http://www.cygnus.com/egcs.
 
 * You will also need a termcap library.  The GNU termcap library seems
   to work.  You can get it from any GNU archive site, including 
-  ftp://prep.ai.mit.edu/pub/gnu/termcap-1.3.tar.gz.
-
-* GNU info doesn't work yet.  It compiles but doesn't run.  Perhaps the
-  problem is just that a proper termcap entry needs to be defined.
-
-* If no other pager can be found, Octave will use more.com.  Since
-  that's a pretty limited pager (no going backward, etc.) you may want
-  to find a working version of less.  The GNU-WIN32 tools used to
-  include a copy of less, but I am told it was dropped from the
-  distribution because it didn't work very well.  If you know of a
-  better port of less that will work with Octave, please contact
-  bug-octave@bevo.che.wisc.edu.
+  ftp://ftp.gnu.org/pub/gnu/termcap-1.3.tar.gz.
 
-* To make plotting work, you will need to find a version of gnuplot
-  that can read commands from a pipe.  The binary versions of gnuplot
-  for Windows that I found could only read from their command windows,
-  and wouldn't accept commands through a pipe, so they could not be
-  called from Octave.
-
-  After deleting -DREADLINE from the Makefile, I was able to compile a
-  working version of gnuplot 3.6 beta 315 using the GNU-WIN32 tools,
-  but it does not support the Windows graphics terminal.  It does
-  support dumb terminals and lots of other output devices, including
-  PostScript, but it would be much nicer if it could open a separate
-  window and draw pretty graphs there.
+* Octave requires gnuplot for plotting, but the normal Windows version
+  of gnuplot will not work because it only reads from the GUI and refuses
+  to read input from stdin.  Mumit Khan has written a patch that fixes
+  the problem, but the gnuplot license does not allow us to distribute
+  modified versions of gnuplot in binary form.  The patch is available
+  from http://www.xraylith.wisc.edu/~khan/software/gnu-win32.
 
 * If Octave takes a long time to find function files, you may have to
   modify your LOADPATH to avoid device names specified using the
-  `//DEV/sudir' syntax.  To map the D: drive (for example) to
+  `//DEV/subdir' syntax.  To map the D: drive (for example) to
   /D_DRIVE, do the following:
 
     cd /
@@ -69,7 +51,7 @@
 If you know of solutions for any of the problems mentioned above,
 please contact bug-octave@bevo.che.wisc.edu.
 
-More information about the GNU-WIN32 project is available via the WWW
+More information about the gnu-win32 project is available via the WWW
 at http://www.cygnus.com/gnu-win32.
 
 John W. Eaton
@@ -77,4 +59,4 @@
 University of Wisconsin-Madison
 Department of Chemical Engineering
 
-Thu Jan 15 23:35:03 1998
+Sat Feb 14 13:12:19 1998
--- a/doc/faq/Octave-FAQ.texi
+++ b/doc/faq/Octave-FAQ.texi
@@ -8,7 +8,7 @@
 @titlepage
 @title Octave FAQ
 @subtitle Frequently asked questions about Octave
-@subtitle December 14, 1996
+@subtitle February 14, 1998
 @sp 1
 @author John W. Eaton
 @page
@@ -90,15 +90,10 @@
 @node Version 2.0, Octave Features, What is Octave?, Top
 @chapter What's new in version 2.0 of Octave
 
-The long-awaited version 2.0 of Octave has now been released.  Many
-bugs have been fixed and lots of new features added.  Octave is now much
-more compatible with @sc{Matlab}.
-
-Version 2.0 fixes many bugs, but as with any ``x.y.0'' release there
-will be a few glitches.  There will probably be a 2.0.1 release to fix
-most of these problems.  You can help contribute to the quality of
-Octave by using it and submitting bug reports for the problems you
-encounter.
+Version 2.0.10 of Octave was released February 6, 1998.  Most bugs
+reported since version 2.0 was release have been fixed, and a number of
+new features have been added.  Octave is now much more compatible with
+@sc{Matlab}.
 
 A list of user-visible changes in recent versions of Octave may be found
 in the file NEWS, distributed in both source and binary releases of
@@ -458,9 +453,8 @@
 command to start the GNU info browser directly from the Octave prompt.
 
 It is also possible to use your favorite WWW browser to read the Octave
-manual (or any other Info file) by using Roar Smith's info2www program
-to convert GNU Info files to HTML.  The source for info2www is available
-from @url{ftp://ftp.che.wisc.edu/pub/www}.
+manual by converting the Texinfo source to HTML using the
+@code{texi2html} program.
 
 @node Getting Octave, Installation, Documentation, Top
 @chapter Obtaining Source Code
@@ -484,26 +478,21 @@
 
 Octave was not developed by the FSF, but the FSF does distribute Octave,
 and the developers of Octave support the efforts of the FSF by
-encouraging users of Octave to order Octave on tape or CD directly from
+encouraging users of Octave to order Octave on CD-ROM directly from
 the FSF.
 
 The FSF is a nonprofit organization that distributes software and
-manuals to raise funds for more GNU development.  Buying a tape or CD
-from the FSF contributes directly to paying staff to develop GNU
-software.  CD-ROMs cost $400 if an organization is buying, or $100 if an
-individual is buying.  Tapes cost around $200 depending on media type.
-
-The FSF only makes new CD releases a few times a year, so if you are
-interested specifically in Octave, I recommend asking for the latest
-release on tape.
+manuals to raise funds for more GNU development.  Buying a CD-ROM from
+the FSF contributes directly to paying staff to develop GNU software.
+CD-ROMs cost $240 if an organization is buying, or $60 if an individual
+is buying.
 
 @cindex FSF [Free Software Foundation]
 @cindex GNU [GNU's not unix]
 
 For more information about ordering from the FSF, contact
-gnu@@prep.ai.mit.edu, phone (617) 542-5942 or anonymous ftp file
-@file{/pub/gnu/GNUinfo/ORDERS} from prep.ai.mit.edu or one of the sites
-listed below.
+gnu@@gnu.org, phone (617) 542-5942 or anonymous ftp the file
+@file{/pub/gnu/GNUinfo/ORDERS} from ftp.gnu.org.
 
 @cindex FSF, contact <gnu@@prep.ai.mit.edu>
 @cindex GNUware, anonymous FTP sites
@@ -532,35 +521,35 @@
 @cindex VMS support
 @cindex VAX
 @cindex MS-DOS support
+@cindex Windows support
 @cindex DJGPP
 @cindex EMX
 @cindex OS/2 support
 
-Octave currently runs on Unix-like systems only.  It should be possible
-to make Octave work on other systems.  If you are interested in porting
-Octave to other systems, please contact bug-octave@@bevo.che.wisc.edu.
+Octave currently runs on Unix-like systems, OS/2, and Windows NT/95
+(using the gnu-win32 tools from Cygnus Support).  It should be possible
+to make Octave work on other systems as well.  If you are interested in
+porting Octave to other systems, please contact
+bug-octave@@bevo.che.wisc.edu.
 
 @node latest versions,  , Octave for other platforms, Getting Octave
 @section What is the latest version of Octave
 
 @cindex Octave, version date
 
-The latest version of Octave is 2.0, released December 1996.
+The latest version of Octave is 2.0.10, released February 6, 1998.
 
 @node Installation, Common problems, Getting Octave, Top
 @chapter Installation Issues and Problems
 
 @cindex Octave, building 
 
-Octave requires approximately 50MB of disk storage to unpack and
-install (significantly less if you don't compile with debugging
-symbols).
-
-Octave has been compiled and tested with g++ and libg++ on a
-SPARCstation 2 running SunOS 4.1.2, an IBM RS/6000 running AIX 3.2.5,
-DEC Alpha systems running OSF/1 1.3 and 3.0, a DECstation 5000/240
-running Ultrix 4.2a, and i486 systems running Linux.  It should work on
-most other Unix systems that have a working port of g++ and libg++.
+Octave requires approximately 125MB of disk storage to unpack and
+compile from source (significantly less if you don't compile with
+debugging symbols or create shared libraries).  Once installed, Octave
+requires approximately 65MB of disk space (again, considerably less if
+you don't build shared libraries or the binaries and libraries do not
+include debugging symbols).
 
 @menu
 * What else do I need?::        
@@ -577,11 +566,20 @@
 @cindex Flex
 @cindex GNU Bison
 
-  In order to build Octave, you will need a current version
-of g++, libg++, and GNU make.  If you don't have these tools, you can
-get them from many anonymous ftp archives, including ftp.che.wisc.edu,
-ftp.uu.net, prep.ai.mit.edu, and wuarchive.wustl.edu, or by writing to
-the FSF at 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+To compile Octave, you will need a recent version of GNU Make.  You
+will also need g++ 2.7.2 or later.  Version 2.8.0 or egcs 1.0.x should
+work.  Later versions may work, but C++ is still evolving, so don't be
+too surprised if you run into some trouble.
+
+It is no longer necessary to have libg++, but you do need to have the
+GNU implementation of libstdc++.  If you are using g++ 2.7.2,
+libstdc++ is distributed along with libg++, but for later versions,
+libstdc++ is distributed separately.  For egcs, libstdc++ is included
+with the compiler distribution.
+
+<em>You must have gnu make to compile octave</em>.  Octave's Makefiles
+use features of GNU Make that are not present in other versions of make.
+GNU Make is very portable and easy to install.
 
 @node Other C++ compilers?,  , What else do I need?, Installation
 @section Can I compile Octave with another C++ compiler?
@@ -718,22 +716,25 @@
 
 @example
 @group
-  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";
+  PS1 = ">> "
+  PS2 = ""
+  beep_on_error = 1.0
+  default_eval_print_flag = 0.0
+  default_save_format = "mat-binary"
+  define_all_return_values = 1.0
+  do_fortran_indexing = 1.0
+  empty_list_elements_ok = 1.0
+  fixed_point_format = 1.0
+  implicit_num_to_str_ok = 1.0
+  implicit_str_to_num_ok = 1.0
+  ok_to_lose_imaginary_part = 1.0
+  page_screen_output = 0.0
+  prefer_column_vectors = 0.0
+  prefer_zero_one_indexing = 1.0
+  print_empty_dimensions = 0.0
+  treat_neg_dim_as_zero = 1.0
+  warn_function_name_clash = 0.0
+  whitespace_in_literal_matrix = "traditional"
 @end group
 @end example
 
--- a/doc/interpreter/emacs.texi
+++ b/doc/interpreter/emacs.texi
@@ -69,7 +69,7 @@
 @lisp
 (autoload 'octave-mode "octave-mod" nil t)
 (setq auto-mode-alist
-      (cons '(\"\\\\.m$\" . octave-mode) auto-mode-alist))
+      (cons '("\\.m$" . octave-mode) auto-mode-alist))
 @end lisp
 
 @item
--- a/liboctave/Array-idx.h
+++ b/liboctave/Array-idx.h
@@ -243,10 +243,13 @@
     }
   else
     {
-      (*current_liboctave_error_handler)
-	("A([]) = X: X must also be an empty matrix");
+      if (rhs_len != 0)
+ 	{
+	  (*current_liboctave_error_handler)
+	    ("A([]) = X: X must also be an empty matrix");
 
-      retval = 0;
+	  retval = 0;
+	}
     }
 
   lhs.clear_index ();
--- a/liboctave/ChangeLog
+++ b/liboctave/ChangeLog
@@ -1,3 +1,8 @@
+Tue Feb 10 16:14:36 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Array-idx.h (assign): Allow A([]) = X to succeed if X is an
+	empty matrix of any dimension.
+
 Thu Feb  5 02:12:38 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
 	* oct-syscalls.cc (octave_syscalls::vfork): New function.
--- a/octMakefile.in
+++ b/octMakefile.in
@@ -39,7 +39,7 @@
 
 
 # Subdirectories in which to run `make all'.
-INSTALL_SUBDIRS = @INFO_DIR@ libcruft liboctave src scripts doc examples
+INSTALL_SUBDIRS = libcruft liboctave src scripts doc examples
 
 # Subdirectories in which to run `make conf-dist'.
 CONF_DISTSUBDIRS = src