changeset 2580:fa7dd5fc7c59

[project @ 1996-12-10 06:30:41 by jwe]
author jwe
date Tue, 10 Dec 1996 06:33:51 +0000
parents 6e1d6e02fd8c
children 6eb163dafaca
files NEWS README src/ChangeLog src/Makefile.in src/SLList-expr.cc src/SLList-misc.cc src/SLList-plot.cc src/SLList-str.cc src/SLList-tc.cc src/SLList-tm.cc src/SLList.h src/SLStack-i.cc src/SLStack-pc.cc src/SLStack-str.cc src/SLStack-sym.cc src/SLStack-tok.cc src/SLStack-ue.cc src/SLStack-ui.cc src/SLStack.cc src/SLStack.h src/Stack.h src/pt-mat.cc
diffstat 22 files changed, 116 insertions(+), 35 deletions(-) [+]
line wrap: on
line diff
--- a/NEWS	Tue Dec 10 05:56:09 1996 +0000
+++ b/NEWS	Tue Dec 10 06:33:51 1996 +0000
@@ -9,13 +9,19 @@
     do work, but they print an annoying warning message to try to get
     people to switch to using gset.)
 
+  * 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.  [This feature should be better documented by the
-    time 2.0 is released].
+    src/op-*.cc.
 
   * The configure option --enable-bounds-check turns on bounds
     checking on element references for Octave's internal array and
--- a/README	Tue Dec 10 05:56:09 1996 +0000
+++ b/README	Tue Dec 10 06:33:51 1996 +0000
@@ -2,7 +2,7 @@
 
 Copyright (C) 1996 John W. Eaton
 
-Last updated: Thu Nov  7 17:17:25 1996
+Last updated: Tue Dec 10 00:20:31 1996
 
 Overview
 --------
@@ -36,18 +36,20 @@
 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
-the binaries and libraries do not include debugging symbols).
+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.
+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.
 
-As of version 2.0, you must have G++ 2.7.2 or later to compile
-Octave.
-
 See the notes in the files INSTALL and INSTALL.OCTAVE for more
 specific installation instructions, including directions for
 installing Octave from a binary distribution.
@@ -55,17 +57,16 @@
 The file BUGS contains a recommended procedure for reporting bugs, as
 well as a list of known problems and possible fixes.
 
-Binary Distributions
---------------------
+Documentation
+-------------
 
-Binary copies of Octave are now distributed for several popular Unix
-systems.  To save disk space, the complete source code for Octave is
-not included in the binary distributions, but should be available in
-the same place as the binaries.  If not, please contact
-bug-octave@bevo.che.wisc.edu.
-
-The file INSTALL.OCTAVE contains specific installation instructions,
-for installing Octave from a binary distribution.
+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
 -------------
--- a/src/ChangeLog	Tue Dec 10 05:56:09 1996 +0000
+++ b/src/ChangeLog	Tue Dec 10 06:33:51 1996 +0000
@@ -1,3 +1,14 @@
+Tue Dec 10 00:31:13 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* SLList-expr.cc SLList-misc.cc SLList-plot.cc SLList-str.cc
+	SLList-tc.cc SLList-tm.cc SLList.h SLStack-i.cc SLStack-pc.cc
+	SLStack-str.cc SLStack-sym.cc SLStack-tok.cc SLStack-ue.cc
+	SLStack-ui.cc, pt-mat.cc: Include Stack.h, Stack.cc, SLStack.cc,
+	and SLList.cc as necessary.
+
+	* Stack.cc, SLStack.cc, SLList.cc: New files.
+	* Makefile.in (SOURCES): Add them to the list.
+
 Mon Dec  9 12:03:45 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
 	* Makefile.in (install-bin): Use $(EXE) suffix so install will
--- a/src/Makefile.in	Tue Dec 10 05:56:09 1996 +0000
+++ b/src/Makefile.in	Tue Dec 10 06:33:51 1996 +0000
@@ -90,10 +90,9 @@
 	op-str-str.h
 
 TI_SRC := Array-oc.cc Array-os.cc Array-tc.cc Map-fnc.cc Map-tc.cc \
-	SLList-expr.cc SLList-misc.cc SLList-plot.cc SLList-str.cc \
-	SLList-tc.cc SLList-tm.cc SLStack-i.cc SLStack-pc.cc \
-	SLStack-str.cc SLStack-sym.cc SLStack-tok.cc SLStack-ue.cc \
-	SLStack-ui.cc
+	SLList-expr.cc SLList-misc.cc SLList-plot.cc SLList-tc.cc \
+	SLList-tm.cc SLStack-i.cc SLStack-pc.cc SLStack-str.cc \
+	SLStack-sym.cc SLStack-tok.cc SLStack-ue.cc SLStack-ui.cc
 
 TI_OBJ := $(patsubst %.cc, %.o, $(TI_SRC))
 
@@ -104,10 +103,11 @@
   endif
 endif
 
-SOURCES := BaseSLList.cc Map.cc data.cc defaults.cc \
-	dirfns.cc dynamic-ld.cc error.cc file-io.cc fn-cache.cc gripes.cc \
-	help.cc input.cc lex.l load-save.cc mappers.cc oct-fstrm.cc \
-	oct-hist.cc oct-iostrm.cc oct-map.cc oct-obj.cc oct-prcstrm.cc \
+SOURCES := BaseSLList.cc Map.cc SLList.cc SLStack.cc Stack.cc \
+	data.cc defaults.cc dirfns.cc dynamic-ld.cc error.cc \
+	file-io.cc fn-cache.cc gripes.cc help.cc input.cc lex.l \
+	load-save.cc mappers.cc oct-fstrm.cc oct-hist.cc \
+	oct-iostrm.cc oct-map.cc oct-obj.cc oct-prcstrm.cc \
 	oct-procbuf.cc oct-stdstrm.cc oct-stream.cc oct-strstrm.cc \
 	pager.cc parse.y pr-output.cc procstream.cc pt-base.cc \
 	pt-cmd.cc pt-const.cc pt-exp-base.cc pt-exp.cc pt-fcn.cc \
--- a/src/SLList-expr.cc	Tue Dec 10 05:56:09 1996 +0000
+++ b/src/SLList-expr.cc	Tue Dec 10 06:33:51 1996 +0000
@@ -27,6 +27,7 @@
 #endif
 
 #include "SLList.h"
+#include "SLList.cc"
 
 #include "pt-exp.h"
 #include "pt-fvc.h"
--- a/src/SLList-misc.cc	Tue Dec 10 05:56:09 1996 +0000
+++ b/src/SLList-misc.cc	Tue Dec 10 06:33:51 1996 +0000
@@ -27,6 +27,7 @@
 #endif
 
 #include "SLList.h"
+#include "SLList.cc"
 
 #include "pt-exp.h"
 #include "ov.h"
--- a/src/SLList-plot.cc	Tue Dec 10 05:56:09 1996 +0000
+++ b/src/SLList-plot.cc	Tue Dec 10 06:33:51 1996 +0000
@@ -27,6 +27,7 @@
 #endif
 
 #include "SLList.h"
+#include "SLList.cc"
 
 #include "pt-plot.h"
 
--- a/src/SLList-str.cc	Tue Dec 10 05:56:09 1996 +0000
+++ b/src/SLList-str.cc	Tue Dec 10 06:33:51 1996 +0000
@@ -27,6 +27,7 @@
 #endif
 
 #include "SLList.h"
+#include "SLList.cc"
 
 #include <string>
 
--- a/src/SLList-tc.cc	Tue Dec 10 05:56:09 1996 +0000
+++ b/src/SLList-tc.cc	Tue Dec 10 06:33:51 1996 +0000
@@ -27,6 +27,7 @@
 #endif
 
 #include "SLList.h"
+#include "SLList.cc"
 
 #include "ov.h"
 
--- a/src/SLList-tm.cc	Tue Dec 10 05:56:09 1996 +0000
+++ b/src/SLList-tm.cc	Tue Dec 10 06:33:51 1996 +0000
@@ -27,6 +27,7 @@
 #endif
 
 #include "SLList.h"
+#include "SLList.cc"
 
 #include "pt-mat.h"
 
--- a/src/SLList.h	Tue Dec 10 05:56:09 1996 +0000
+++ b/src/SLList.h	Tue Dec 10 06:33:51 1996 +0000
@@ -19,6 +19,10 @@
 #ifndef _SLList_h
 #define _SLList_h 1
 
+#if defined (__GNUG__)
+#pragma interface
+#endif
+
 #include <Pix.h>
 #include <BaseSLList.h>
 
@@ -47,7 +51,7 @@
     SLList(const SLList<T>& a) : BaseSLList() { copy(a); }
     SLList<T>&            operator = (const SLList<T>& a)
 	{ BaseSLList::operator=((const BaseSLList&) a); return *this; }
-  ~SLList (void) { clear (); }
+    ~SLList (void);
 
     Pix prepend(const T& item) {return BaseSLList::prepend(&item);}
     Pix append(const T& item) {return BaseSLList::append(&item);}
--- a/src/SLStack-i.cc	Tue Dec 10 05:56:09 1996 +0000
+++ b/src/SLStack-i.cc	Tue Dec 10 06:33:51 1996 +0000
@@ -27,13 +27,19 @@
 #endif
 
 #include "SLList.h"
+#include "SLList.cc"
+
+#include "Stack.h"
+#include "Stack.cc"
 
 #include "SLStack.h"
+#include "SLStack.cc"
 
 template class SLNode<int>;
 template class SLList<int>;
 
 template class Stack<int>;
+
 template class SLStack<int>;
 
 /*
--- a/src/SLStack-pc.cc	Tue Dec 10 05:56:09 1996 +0000
+++ b/src/SLStack-pc.cc	Tue Dec 10 06:33:51 1996 +0000
@@ -27,13 +27,19 @@
 #endif
 
 #include "SLList.h"
+#include "SLList.cc"
+
+#include "Stack.h"
+#include "Stack.cc"
 
 #include "SLStack.h"
+#include "SLStack.cc"
 
 template class SLNode<char*>;
 template class SLList<char*>;
 
 template class Stack<char*>;
+
 template class SLStack<char*>;
 
 /*
--- a/src/SLStack-str.cc	Tue Dec 10 05:56:09 1996 +0000
+++ b/src/SLStack-str.cc	Tue Dec 10 06:33:51 1996 +0000
@@ -26,15 +26,22 @@
 #include <config.h>
 #endif
 
+#include "SLList.h"
+#include "SLList.cc"
+
+#include "Stack.h"
+#include "Stack.cc"
+
 #include "SLStack.h"
+#include "SLStack.cc"
 
 #include <string>
 
-// We already have SLList<string>, so we don't need to make them here.
+template class SLNode<string>;
+template class SLList<string>;
 
-// template class SLNode<string>;
-// template class SLList<string>;
 template class Stack<string>;
+
 template class SLStack<string>;
 
 /*
--- a/src/SLStack-sym.cc	Tue Dec 10 05:56:09 1996 +0000
+++ b/src/SLStack-sym.cc	Tue Dec 10 06:33:51 1996 +0000
@@ -27,8 +27,13 @@
 #endif
 
 #include "SLList.h"
+#include "SLList.cc"
+
+#include "Stack.h"
+#include "Stack.cc"
 
 #include "SLStack.h"
+#include "SLStack.cc"
 
 #include "symtab.h"
 
@@ -36,12 +41,14 @@
 extern template class SLList<unsigned>;
 
 extern template class Stack<unsigned>;
+
 extern template class SLStack<unsigned>;
 
 template class SLNode<symbol_def *>;
 template class SLList<symbol_def *>;
 
 template class Stack<symbol_def *>;
+
 template class SLStack<symbol_def *>;
 
 /*
--- a/src/SLStack-tok.cc	Tue Dec 10 05:56:09 1996 +0000
+++ b/src/SLStack-tok.cc	Tue Dec 10 06:33:51 1996 +0000
@@ -27,8 +27,13 @@
 #endif
 
 #include "SLList.h"
+#include "SLList.cc"
+
+#include "Stack.h"
+#include "Stack.cc"
 
 #include "SLStack.h"
+#include "SLStack.cc"
 
 #include "token.h"
 
@@ -36,6 +41,7 @@
 template class SLList<token *>;
 
 template class Stack<token *>;
+
 template class SLStack<token *>;
 
 /*
--- a/src/SLStack-ue.cc	Tue Dec 10 05:56:09 1996 +0000
+++ b/src/SLStack-ue.cc	Tue Dec 10 06:33:51 1996 +0000
@@ -27,8 +27,13 @@
 #endif
 
 #include "SLList.h"
+#include "SLList.cc"
+
+#include "Stack.h"
+#include "Stack.cc"
 
 #include "SLStack.h"
+#include "SLStack.cc"
 
 #include "unwind-prot.h"
 
@@ -36,6 +41,7 @@
 template class SLList<unwind_elem>;
 
 template class Stack<unwind_elem>;
+
 template class SLStack<unwind_elem>;
 
 /*
--- a/src/SLStack-ui.cc	Tue Dec 10 05:56:09 1996 +0000
+++ b/src/SLStack-ui.cc	Tue Dec 10 06:33:51 1996 +0000
@@ -27,13 +27,19 @@
 #endif
 
 #include "SLList.h"
+#include "SLList.cc"
+
+#include "Stack.h"
+#include "Stack.cc"
 
 #include "SLStack.h"
+#include "SLStack.cc"
 
 template class SLNode<unsigned>;
 template class SLList<unsigned>;
 
 template class Stack<unsigned>;
+
 template class SLStack<unsigned>;
 
 /*
--- a/src/SLStack.cc	Tue Dec 10 05:56:09 1996 +0000
+++ b/src/SLStack.cc	Tue Dec 10 06:33:51 1996 +0000
@@ -27,6 +27,7 @@
 #include "SLStack.h"
 
 template <class T>
+SLStack<T>&
 SLStack<T>::operator = (const SLStack<T>& s)
 {
   if (this != &s)
--- a/src/SLStack.h	Tue Dec 10 05:56:09 1996 +0000
+++ b/src/SLStack.h	Tue Dec 10 06:33:51 1996 +0000
@@ -36,6 +36,10 @@
 #if !defined (_SLStack_h)
 #define _SLStack_h 1
 
+#if defined (__GNUG__)
+#pragma interface
+#endif
+
 #include "SLList.h"
 #include "Stack.h"
 
@@ -55,11 +59,7 @@
 
   ~SLStack (void) { }
 
-  SLStack<T>& operator = (const SLStack<T>& s)
-  {
-    p = s.p;
-    return *this;
-  }
+  SLStack<T>& operator = (const SLStack<T>& s);
 
   void push (const T& item) { p.prepend (item); }
 
--- a/src/Stack.h	Tue Dec 10 05:56:09 1996 +0000
+++ b/src/Stack.h	Tue Dec 10 06:33:51 1996 +0000
@@ -36,6 +36,10 @@
 #if !defined (_Stack_h)
 #define _Stack_h 1
 
+#if defined (__GNUG__)
+#pragma interface
+#endif
+
 template <class T>
 class
 Stack
@@ -58,6 +62,7 @@
   virtual void clear (void) = 0;
 
   void error (const char *msg);
+
   virtual int OK (void) = 0;
 };
 
--- a/src/pt-mat.cc	Tue Dec 10 05:56:09 1996 +0000
+++ b/src/pt-mat.cc	Tue Dec 10 06:33:51 1996 +0000
@@ -247,6 +247,9 @@
     ::warning ("%s near line %d, column %d", msg, l, c);
 }
 
+#include "SLList.h"
+#include "SLList.cc"
+
 template class SLNode<tm_row_const>;
 template class SLList<tm_row_const>;