ftp.nice.ch/pub/next/science/mathematics/octave.2.0.5.NI.bd.tar.gz#/octave.pkg/_octave/src/octave-2.0.5

BUGS
 
COPYING
 
ChangeLog
 
ChangeLog.1
 
INFO.PATCH
 
INSTALL
 
INSTALL.OCTAVE
 
MAKEINFO.PATCH
 
Makeconf
 
Makefile
 
NEWS
 
NEWS.1
 
PROJECTS
 
README
 
README.Linux
 
README.NLP
 
README.Windows
 
ROADMAP
 
SENDING-PATCHES
 
THANKS
 
doc.tar.gz
[Browse doc.tar.gz] 
octave-2.0.5.NeXT
 

README

Octave -- a high-level language for numerical computations.

Copyright (C) 1996 John W. Eaton

Last updated: Tue Dec 10 01:41:30 1996

Overview
--------

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.

Octave is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.

Octave is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the file COPYING for more
details.

Availability
------------

The latest released version of Octave is always available via
anonymous ftp from ftp.che.wisc.edu in the directory /pub/octave.
Complete source and binaries for several popular systems are
available.

Installation and Bugs
---------------------

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).

In order to build Octave, you will need a current version of g++,
libg++, and GNU make.  Recommended versions are

  g++ 2.7.2 or 2.7.2.1
  libg++ 2.7.1 or 2.7.2
  make 3.75

YOU MUST HAVE GNU MAKE TO COMPILE OCTAVE.  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.

See the notes in the files INSTALL and INSTALL.OCTAVE for more
specific installation instructions, including directions for
installing Octave from a binary distribution.

The file BUGS contains a recommended procedure for reporting bugs, as
well as a list of known problems and possible fixes.

Documentation
-------------

Octave's manual has been revised for version 2.0, but it is lagging a
bit behind the development of the software.  In particular, there is
currently no complete documentation of the C++ class libraries or the
support for dynamic linking and user-defined data types.  If you
notice ommissions or inconsistencies, please report them as bugs to
bug-octave@bevo.che.wisc.edu.  Specific suggestions for ways to
improve Octave and its documentation are always welcome.

Implemenation
-------------

Octave is being developed with the Free Software Foundation's make,
bison (a replacement for YACC), flex (a replacement for lex), gcc/g++,
and libg++ on an Intel Pentium 133 system running Debian Linux/GNU.
It should be possible to install it on any machine that runs GCC/G++.
It may also be possible to install it using other implementations of
these tools, but it will most certainly require much more work.  Do
yourself a favor and get the GNU development tools, either via
anonymous ftp from prep.ai.mit.edu or by writing the Free Software
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

The underlying numerical solvers are currently standard Fortran ones
like Lapack, Linpack, Odepack, the Blas, etc., packaged in a library
of C++ classes (see the files in the libcruft and liboctave
subdirectories).  If possible, the Fortran subroutines are compiled
with the system's Fortran compiler, and called directly from the C++
functions.  If that's not possible, they are translated with f2c and
compiled with a C compiler.  Better performance is usually achieved if
the intermediate translation to C is avoided.

The library of C++ classes may also be useful by itself.

Additional Information
----------------------

Up to date information about Octave is available on the WWW at the
URL http://bevo.che.wisc.edu/octave, including archives of the
help-octave, bug-octave, and octave-sources mailing lists.

--
John W. Eaton
jwe@bevo.che.wisc.edu
University of Wisconsin-Madison
Department of Chemical Engineering

README.Linux

Since July 1996, most work on Octave has been done using a Linux
system, and a number of people who regularly test Octave snapshot
releases also primarily use Linux systems.

However, I have recently started to receive a significant number of
reports from people who say that they can't compile or run Octave on
Linux systems.  In nearly every case, the problem has turned out
to be that the compilers or libraries have not been installed
properly.  I suspect that this often results from a botched upgrade,
or from attempting to install the compilers from the standard source
distributions.  But in some cases, the cause has been a buggy Linux
distribution.  Many of these problems go unnoticed because much of the
software for Linux is written in C, not C++.

Octave compiles, but it won't run
---------------------------------

If you can compile Octave, but it crashes with a segmentation fault
right away, you probably have incompatible versions of libc and libg++
installed, or you have a version of the dynamic loader, ld.so, that is
incompatible with your versions of the libraries, or both.

On my development system, I am using the following software:

  * Linux kernel 2.0.6
  * gcc/g++ 2.7.2
  * g77 0.5.18
  * libg++/libstdc++ 2.7.1.0
  * libm 5.0.5
  * libc 5.2.18
  * libncurses 3.0
  * ld.so 1.7.14
  * binutils 2.6

I know from experience that the versions listed above seem to work
well together.  But if you have a newer version of the kernel, you may
need a newer version of the C library.  I don't have time to keep up
with all the various library versions (life is much too short for
that), nor do I know which combinations are supposed to work together.
That sort of information should be clearly stated in the release notes
for the libraries.  If it is not, please ask the maintainers of the
libraries to clarify the documentation.

Please note that I am NOT recommending that everyone running Linux and
using Octave should install the same versions of the libraries and
compilers that I have.  I am simply saying that the versions listed
above work for me.  Other version combinations may also work, but I
don't have time to map out all the possibilities...

Craig Earls <cpearls@ziplink.net> reports that the order of installing
libc and lig++ is important.  If libg++ is installed *first*, Octave
will work, but if the libraries are installed in the reverse orfer,
Octave fails.  The conflict apparently arises because libc and libg++
shared libraries both use libio, however no one seems to be able to
provide a clear explanation of exactly what is happening.

Octave won't even compile
-------------------------

If you can't compile Octave, you should first check to see that your
compiler and header files are properly installed.  Do you have
multiple versions of the g++ include files on your system?  Are you
sure that your copy of g++ is finding the right set?  You can find out
by compiling a simple C++ program with -v:

bash$ cat foo.cc
#include <iostream.h>
int main (void) { cerr << "yo\n"; return 0; }

bash$ g++ -v foo.cc
gcc -v foo.cc -lg++ -lstdc++ -lm
Reading specs from /usr/lib/gcc-lib/i486-linux/2.7.2/specs
gcc version 2.7.2
 /usr/lib/gcc-lib/i486-linux/2.7.2/cpp -lang-c++ -v -undef ...
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/g++-include
 /usr/local/include
 /usr/i486-linux/include
 /usr/lib/gcc-lib/i486-linux/2.7.2/include
 /usr/include
End of search list.
...

If the location of the correct set of include files is not listed in
the search path, then you might be able to fix that with a symbolic
link.  However, if your version of libg++ was not compiled with your
current version of gcc, you are likely to run into more trouble.

The linker can't find -lieee
----------------------------

This can happen because your libraries don't match your version of
gcc.  Some recent Linux distributions don't include a libieee.a file
because IEEE support is now the default and the library is no longer
needed, but the gcc specs file still adds -lieee to the linker command
if gcc is invoked with the -mieeefp flag.  I believe that you should
be able to fix this by editing the gcc specs file.  In it, you should
find something like this:

  %{!shared: %{mieee-fp:-lieee} %{p:-lgmon} %{pg:-lgmon} \
  %{!ggdb:-lc} %{ggdb:-lg}}

changing it to

  %{!shared: %{p:-lgmon} %{pg:-lgmon} %{!ggdb:-lc} %{ggdb:-lg}}

should keep gcc from adding -lieee to the link command.  You can find
the location of the specs file by running the command gcc -v.

If you can't edit the gcc specs file for some reason, another solution
that should work is to create an empty libieee.a file in the Octave
src directory using the command:

  ar cq libieee.a

NOTE: you should fix this problem (either by editing the specs file or
by creating the library) *before* running configure and compiling
Octave.  Otherwise, configure may incorrectly determine that your
system doesn't have support for some IEEE math functions.

My system doesn't have g77
--------------------------

A binary release of g77 that should work with gcc 2.7.2 is available
from sunsite.unc.edu in the directory /pub/Linux/devel/lang/fortran.
There is also a Debian package for g77.

Problems with g77 on Debian 1.2 systems (and possibly others)
-------------------------------------------------------------

The location of the compiler binaries has changed, so the g77 0.5.18
package can not be used without modification.  The problem is that the
Debian package was built for gcc 2.7.2 and not 2.7.2.1 and the f771
backend is installed in the wrong directory.

Version 0.5.19 of g77 has just been released.  A fixed Debian package
may be made available soon.  Until then, you can make things work by
copying f771 and libf2c.a from /usr/lib/gcc-lib/i486-linux/2.7.2 to
/usr/lib/gcc-lib/i486-linux/2.7.2.1.

Upgrading your compiler and libraries
-------------------------------------

Installing libg++ on a Linux system is not as simple as it should be,
because libg++ shares some basic I/O code with the Linux C library,
and they must be compatible.  You should get and read the release
notes for the compiler and libraries.

If you decide to install versions of the libraries that are older (or
newer) than the ones you already have, you should follow the
directions in the release notes very carefully.


If you have comments or suggestions for this document, please contact
bug-octave@bevo.che.wisc.edu.

John W. Eaton
jwe@bevo.che.wisc.edu
University of Wisconsin-Madison
Department of Chemical Engineering

Wed Jan 29 13:39:02 1997

README.NLP

If you don't have NPSOL but you still want to be able to solve NLPs,
or if you don't have QPSOL but you still want to solve QPs, you'll
need to find replacements or order them from Stanford.  If you know of
a freely redistributable replacement, please let us know--we might be
interested in distributing it with Octave.

You can get more information about NPSOL and QPSOL from

     Stanford University
     Office of Technology Licensing
     857 Serra Street
     Stanford CA 94305-6225
     Tel: (415) 723-0651
     Fax: (415) 725-7295

Octave may soon support FSQP, an NLP solver from Andre Tits
(andre@src.umd.edu) of the University of Maryland.  FSQP is available
free of charge to academic sites, but can not be redistributed to
third parties.

README.Windows

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.

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.

* 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).

* 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 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.

* 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.


If you know of solutions for any of these problems, please contact
bug-octave@bevo.che.wisc.edu.

More information about the GNU-WIN32 project is available via the WWW
at http://www.cygnus.com/gnu-win32.

John W. Eaton
jwe@bevo.che.wisc.edu
University of Wisconsin-Madison
Department of Chemical Engineering

Wed Jan  8 23:15:59 1997

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.