A high-level language, primarily intended for numerical computations. It provides a convenient command line interface for solving linear and nonlinear problems numerically.
Program is distributed as ZIP package: download to temporary directory, unpack to destination folder, type inst-octave /install
and reboot. See below for download link(s). More in README.OS2 file.
Following ones are the download links for manual installation:
Octave v. 3.0.0 (27/2/2008, Klaus Gebhardt) | ||
www.os2site.com/sw/apps/math/octave-3.0.0-os2-bin.zip | local copy | |
Octave v. 2.0.17 (31/7/2002, Klaus Gebhardt) | Readme/What's new |
Octave -- a high-level language for numerical computations.
**************************************************************************
** P L E A S E N O T E **
**************************************************************************
** Because i no longer work for the Technical University of **
** Darmstadt, my email address has changed: **
** **
** 100114.1371@compuserve.com **
** gebhkla@t-online.de **
** **
** Sorry for the inconvenience, **
** Klaus Gebhardt **
**************************************************************************
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.
Used Compiler and Libraries
---------------------------
Octave for OS/2 is compiled using EMX-GCC 0.9C (with EMXFIX04) and
libg++ 2.7.2.
The fortran routines are translated to C using f2c.
Binary Distribution
-------------------
Why a binary distribution?
1. There are only minor changes made in the source files of octave. The main
job was patching stdcpp, info, kpathsea and readline.
2. octave is big (40 MB with the source, object files and libraries) and it
takes time to compile the program. (ca. 50 minutes on my
133 MHz Pentium-Overdrive system = ca. 8 hours on a 486DX-33).
Compiling Octave
----------------
If you want to compile Octave yourself you must download the patched sources and
unpack them. Modify the paths in the file makeversions depending on your
system setup an run 'make octave'.
Files
-----
The files BUGS, CHANGELO, CHANGELO.1, COPYING, NEWS, NEWS.1, PROJECTS, README,
ROADMAP, SENDING.PAT and THANKS are part of the octave 2.0.17 source code.
In the zip file scripts.zip are the scripts coming with octave 2.0.17.
The installation script will unzip the correct set of script files for
your file system.
The files COPYING.EMX, emx.dll, emxlibcs.dll and termcap.dat are part of the
emx 0.9c package (with EMXFIX04 applied, see COPYING.EMX).
octave.exe and octave.ico are the executable and the icon of the main program.
The file octave.exe must no longer be build by the install program!
info.exe is the standalone info browser coming with EMX. It was recompiled
so that info.exe and octave.exe uses the same DLL (gnuinfo.dll). And it is
patched so that info.exe accepts the '--index-search' option.
gnuview.exe is a replacement for info.exe: It accepts the same command
line option, but it starts OS/2s view.exe.
mkfifo.exe is the utility for creating, removing and listing named pipes. It
starts the program nmpserv.exe, if neccessary.
The program oct-view.exe is used for starting the image viewer.
README.OS2 is the file you are reading.
In the directory 'lisp' you find the elisp files (and the compiled elisp files)
you need to run Octave in an Emacs subshell and the files for editing script
files or temporary files of octave using the Emacs editor.
In the directory 'doc' you can find the documentation in dvi, postscript,
and also the info files and the INF files.
In the directory 'dll' you can find the Dynamic Link Libraries of octave and
emx, and the file termcap.dat is in the directory etc.
All files you need for using the dynamic loading in Octave for loading your
own C++ routines into Octave are in 'dlfcn' and its subdirectories.
Other Files of Interest
-----------------------
octa20Hb.zip or octave-2.0.17-b??.zip:
The binary distribution of Octave-2.0.17.
octa20Hp.zip or octave-2.0.17-p??.zip:
This archive contains always the update to the newest build.
octa20Hs.zip or octave-2.0.17-s??.zip:
The patched source code for octave (including info, kpathsea,
iostream, readline and pnm).
You need also the following packages. They are available on ftp.cdrom.com,
hobbes.nmsu.edu and wotan.ikp.physik.tu-darmstadt.de. less and gnufutil
should be also on ftp.uni-stuttgart.de and ftp.leo.org, and the gnuplot
beta on cmpc1.phys.soton.ac.uk.
less252-2.zip: The less pager ported by Kai Uwe Rommel.
(I know there is a newer version, but i forgot the number :-))
gp315os2b.zip: GNUPLOT 3.6 (beta 315)
gnufutil.zip : The GNU file utilities.
pmvu93.zip : PM View 0.93.
Updating to the most recent build level
---------------------------------------
**************************************************************************
** BEFORE APPLYING A PATCH MAKE SURE THAT THE PATCH IS FOR YOUR **
** INSTALLED OCTAVE VERSION (CHECK THE TIMESTAMPS OF THE FILES). **
**************************************************************************
** DO NOT INSTALL AN OLDER PATCH OVER A NEWER VERSION OF OCTAVE! **
**************************************************************************
1. First you must install Octave. See Installation below.
2. Unzip the patches into the directory you have Octave/2 installed in.
3. Change into that directory and type 'updt-octave'
4. Type 'inst-octave /clean'
Installation
------------
Change to the directory of octave and run install (REXX must be installed!):
1. Type 'inst-octave /install':
The script make changes in the config.sys, .octaverc, .emacs and dir.
It unzips the scriptfiles, removes older emx-dlls, copies the info-files
to the INFO directory and creates an object on the desktop!
For all modified or deleted files it will create backups in the current
directory.
**************************************************************************
** BEFORE REBOOTING CONFIRM THE CHANGES THIS SCRIPT WILL HAVE DONE **
** IN YOUR CONFIG.SYS! **
**************************************************************************
** IF THERE IS SOMETHING WRONG PLEASE SEND ME A NOTE! **
**************************************************************************
2. If necessary the script will ask you to reboot. Do so.
3. To save disk space you can use 'inst-octave /clean'. All the files you
don't need for running octave are deleted. All backup files are also
removed.
The setup script modify the following parts of the config.sys, if necessary:
PATH=...;h:\apps\science\octave;
LIBPATH=...;h:\apps\science\octave\dll;
The directory you have Octave installed in:
SET OCTAVE_HOME=c:/octave
Terminal type and a pointer to the TERMCAP.DAT file:
SET TERM=ansi
SET TERMCAP=h:/apps/science/octave/etc/termcap.dat
Your home directory (place of your initialization files)
SET HOME=h:/.
The name of the initialization file:
SET OCTAVE_INITFILE=octave.ini
The directory for your info files:
SET INFOPATH=.;h:/apps/science/octave/doc
The directory of Gnuplot:
SET GNUPLOT=h:/apps/science/gnuplot
Running Octave
--------------
When you start octave (without -f, --norc or --ignore-init-file), octave will
execute the following files:
1. scripts\startup\octaverc:
Octave will use the editor 'emacsclient' and the pager 'less'. The info
files are located using the environment variable INFOPATH and the
gnuplot_binary using the environment variable GNUPLOT.
2. The file, which name is given by the environment variable OCTAVE_INITFILE,
or .octaverc, if there is no OCTAVE_INITFILE. Both are searched in your
HOME directory.
You can use octave as an external processor in an batch file, if the first
line in the batch file is
extproc octave -q
or
EXTPROC octave -q.
This is the same as using octave -q file.cmd.
GNUPLOT
-------
Octave uses GNUPLOT to display plots. I have tested octave with GNUPLOT 3.6
(beta 315). The system-wide startup file octaverc in the directory
scripts/startup reads the environment variable GNUPLOT and appends
"/gnuplot.exe". This should be the path and name of GNUPLOT. So if the
executable (gnuplot.exe) is in the directory h:\apps\science\gnuplot
add the following line to your config.sys:
SET GNUPLOT=h:/apps/science/gnuplot
You must use the beta of GNUPLOT because it supports multiple plots.
PAGER
-----
If you want to use the less pager, you need the file less252-2.zip or newer.
This less port does not use the termcap library, so it is unable to work with
ansi-color-2, ansi-color-3,...
If you want to use ansi-color-3, you must recompile less after deleting
termcap.c and adding the termcap-library in the makefile, or you must edit
the file termcap.dat: Replace every tc=ansi in the termcap.dat by the lines
following ansi.
EMACS
-----
You can use emacs to edit the script files of octave. To do so add the lines
(setq load-path (append '("h:/apps/science/octave/lisp") load-path))
(autoload 'octave-mode "octave-mode" "Enter Octave mode." t)
(setq auto-mode-alist (cons '("\\.[Mm]$" . octave-mode) auto-mode-alist))
(defun my-octave-mode-hook ()
(setq fill-column 76)
(auto-fill-mode 1))
(setq octave-mode-hook 'my-octave-mode-hook)
(setq octave-prog-filename "h:/apps/science/octave/octave.exe")
to your .emacs.
If you run emacs in server mode, octave can use the emacsclient for editing
temporary files. Add the following lines to .emacs:
(autoload 'octave-tmp-mode "octave-tmp-mode" "Enter Octave's tmp mode." t)
(setq auto-mode-alist
(cons '("[Oo][Cc][Tt]-....\\.[Tt][Mm][Pp]$" . tmp-mode)
auto-mode-alist))
The tmp mode is the normal text mode with one exception: If you finished
editing by pressing C-x # the buffer is killed. So octave can delete the file.
If you want to run Octave in a special shell mode under Emacs you must also
add the following line to .emacs:
(require 'octave)
There is also another octave shell mode, which is normally part of
Octave. The file is called octave.el. I do not use it, because it created
a lot of problems on my system AND it won't work correctly.
For example your .emacs file should look like this:
(setq load-path (append '("h:/apps/science/octave/lisp") load-path))
(require 'octave)
(autoload 'octave-mode "octave-mode" "Enter Octave mode." t)
(setq auto-mode-alist (cons '("\\.[Mm]$" . octave-mode) auto-mode-alist))
(defun my-octave-mode-hook ()
(setq fill-column 76)
(auto-fill-mode 1))
(setq octave-mode-hook 'my-octave-mode-hook)
(setq octave-prog-filename "h:/apps/science/octave/octave.exe")
(autoload 'octave-tmp-mode "octave-tmp-mode" "Enter Octave's tmp mode." t)
(setq auto-mode-alist
(cons '("[Oo][Cc][Tt]-....\\.[Tt][Mm][Pp]$" . octave-tmp-mode)
auto-mode-alist))
Dynamic Loading of C++ Functions
--------------------------------
This port now supports the dynamic loading. Use the script MAKE-OCTFILE to
compile your scripts EVERY time you installed a new version of Octave! The
script MAKE-OCTFILE is created by INST-OCTAVE.
For example:
cd dlfcn\examples
make-octfile hello.cc
and add the path '.../dlfcn/examples' to Octave's LOADPATH; start Octave and
type 'hello (1,2,3)'.
You can find examples in the directories '.../dlfcn/examples' and
'scripts/image/codecs'.
Images
------
Octave for OS/2 uses the excellent PM View. If you want to use a different
viewer or if your PM View is installed in directory other then
h:\apps\graphics\pmview, set the environment variable OCTAVE_IMAGE_VIEWER.
You can use the environment variable OCTAVE_IMAGE_VIEWER_OPT for specifying
command line options: For example:
SET OCTAVE_IMAGE_VIEWER=c:\pmview\pmview.exe
SET OCTAVE_IMAGE_VIEWER_OPT=/WPos(,,,,ForAct)
For loading and saving images Octave uses now the DLFCN feature. Octave can
read and write BMP, PNM, IMG formats and write Postscript.
MKFIFO
------
The mkfifo command is now supported! You can use Octave's mkfifo command
to create a named pipe for communication with another program (local or
in a LAN). There is also a utility called mkfifo, which can be used for
creating, removing, listing named pipes, you have created with mkfifo.
The names of the pipes must start with '\PIPE' or with '/PIPE'. If you want
access to a pipe on another computer in your LAN you must prepend
'\\HOSTNAME', where HOSTNAME stands for the name of the computer.
For example:
1) Start octave.
2) Open an OS/2 window.
3) Run mkfifo \PIPE\TEST
4) Type 'echo abcdef >\PIPE\TEST' in the OS/2 window
5) In Octave execute the following commands:
fid = fopen ("/PIPE/TEST", "r");
fgets (fid)
fclose (fid);
6) Run mkfifo -d \PIPE\TEST in the OS/2 window
To speed up the execution of the first mkfifo command you can add the
following in your STARTUP.CMD:
detach [DRIVE:]\[PATH]\nmpserv --noexit
Known Limitations, Modifications and Bugs
-----------------------------------------
1) fork is not supported, use spawn instead. Compare the script file popen2.m
with the original version (popen2.org).
2) dup2 has been renamed to _dup2
3) Because of an OS/2 limitation dynamic loading of C++ functions will only
work, if the length of the function name is less than 8 characters.
Comments, Bugs, Problems, Ideas, ...
------------------------------------
If you have any problem installing or using this port, let me know!
If have any idea to make octave for OS/2 a better program, send me a mail.
Also any comments are welcome.
And thanks for all your nice mails i received, and thanks to all of you
helping me to remove the bugs.
My email addresses are:
INTERNET: 100114.1371 @ compuserve . com
gebhkla @t - online . de
CompuServe: 100114,1371
Klaus Gebhardt [TEAM OS/2]
Competence Center Architecture and Technology
Deutsche Boerse Systems
*******************************************************************************
** Changes since the Version 2.09 of Octave for OS/2 **
*******************************************************************************
Octave 2.0.17 Build 01:
***********************
* New Version 2.0.17. This might be the final 2.0.x version.
Octave 2.0.16 Build 01:
***********************
* New Version 2.0.16
Octave 2.0.15 Build 01:
***********************
* New Version 2.0.15
Octave 2.1.23 Build 01:
***********************
* New version:
***************************************************************************
** Octave 2.1.14 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in the next version. **
***************************************************************************
Octave 2.1.14 Build 02:
***********************
* atanh(1) and acoth(1) will no longer crash Octave.
Octave 2.1.14 Build 01:
***********************
* New version:
***************************************************************************
** Octave 2.1.14 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in the next version. **
***************************************************************************
Octave 2.0.14 Build 02:
***********************
* atanh(1) and acoth(1) will no longer crash Octave.
Octave 2.0.14 Build 01:
***********************
* New Version 2.0.14
* diary bug fixed: User input when running a script will now be written into
the diary file.
Octave 2.0.13 Build 02:
***********************
* oregon.cc renamed.
* Patch included:
src/file-io.cc and liboctave/data-conv.cc: uint16 and uint32 types supported
in fread.
* Complex erf added to examples for dlfcn.
* Patch included:
data.cc: is_complex added.
* GNU Info updated to version 2.18.
* kpathsearch version 3.2 used.
* Help in image.m is now correct.
Octave 2.0.13 Build 01:
***********************
* New Version 2.0.13
* Plot functions patched.
* Patch included:
DASSL.cc (DASSL::do_integrate): If an exception occurs in the
call to ddassl, set integration_error to 1 before calling the
error handler and returning.
* Patch included:
Array2-idx.h (assign): Allow A([],[]) = scalar and, if
do_fortran_indexing is set, A([]) = scalar.
Array-idx.h (assign): Allow A([]) = scalar.
* Patch included:
time.cc (extract_tm): Truncate field values instead of rounding.
(Fgmtime, Flocaltime): Likewise, for timeval.
Octave 2.0.11 Build 02:
***********************
* New Version 2.0.11
* Patch included:
symtab.cc (symbol_record::variable_value): Avoid dereferencing
NULL pointer.
* Patch included:
lo-spec-fun: the order of the arguments in the gammai and gammainc.
* Patch included:
error.cc (verror): Fix thinko in attempt to skip `error: ' tag
when buffering error messages.
pt-cmd.cc (tree_try_catch::eval): Reset buffer_error_messages
here if just discarding unwind_protect frame.
* Typos in mplot.m fixed.
* __pltopt__ functionality extended:
Now, for plot (x, y, fmt) in the cases where either x or y (or both)
are matrices, fmt can also be a string array. The rows of the string
array correspond to the lines on the plot:
plot/__pltopt1.m__: New file.
plot/__pltopt.m__: Handle opt as a string array by calling
__pltopt1__ multiple times and returning a string array with rows
corresponding to the rows of opt.
plot/__plt2ss__.m, plot/__plt2vv__.m, plot/__plt2vm__.m,
plot/__plt2mv__.m, plot/__plt2mm__.m: Handle fmt as a string
array.
Octave 2.0.10 Build 01:
***********************
* New Version 2.0.10
* Default install path changed (h:/apps/science/octave).
Octave 2.09.98 Build 01:
************************
* New Version 2.0.9.98 (Beta)
Octave 2.09.97 Build 01:
************************
* New Version 2.0.9.97 (Beta)
*******************************************************************************
** Changes since the Version 1.9x of Octave for OS/2 **
*******************************************************************************
Octave 2.09 Build 04:
*********************
* makefile.os2 modified: This corrects the missing xmalloc.lib problem, when
using make-octfile.
* lgamma(-2) no longer aborts Octave.
* Minor changes in the source code.
* Patch for filter.cc included.
* sighandlers.cc (octave_child_list::do_remove) and
toplev.cc (run_command_and_return_output) modified:
[a,b] = system ("dir") returns the correct return value in b.
* Patch included:
* pt-mat.h (tree_matrix_row::preserve_expr): New private data.
(tree_matrix_row::~tree_matrix_row): Delete list contents.
(tree_matrix::~tree_matrix): Delete list contents.
* pt-mat.cc (tree_matrix_row::to_return_list): Set preserve_expr
to true if successful.
* get_boot_drive in inst-octave.cmd and updt-octave.cmd patched.
* Patch included:
* input.cc (get_user_input): Return an empty string if the user
just types RET.
Octave 2.09 Build 03:
*********************
* mkfifo is now supported.
* inst-octave.cmd creates WPS objects for the documentation.
* The documentation is now also available in OS/2's INF format. You can
view them using gnuview as Octave's external info viewer.
* Compiler updated (EMXFIX03).
* Bug in logm (wrong result for a complex scalar argument) fixed.
* Minor changes in the sources and makefiles.
* Workaround for the bug in the fortran routine DGELSS added (in CMatrix.cc).
* Patch included:
* idx-vector.cc (IDX_VEC_REP::sort): New function.
* idx-vector.h (idx_vector::sort): Ditto.
* Array2-idx.h (Array2<T>::maybe_delete_elements): Use it before
trying to delete elements specified by the index vectors.
Octave 2.09 Build 02:
*********************
* Bug in cruft4.def fixed, which caused Octave to crash, when trying to
compute eig(A), with a complex matrix A.
Octave 2.09 Build 01:
*********************
* New Version 2.0.9.
Octave 2.08 Build 01:
*********************
* New Version 2.0.8.
* Patch for pt-fvc.cc included.
Octave 2.07 Build 01:
*********************
* New Version 2.0.7.
Octave 2.06 Build 01:
*********************
* New Version 2.0.6.
* All functions working with FILE IDS (file handles) are renamed:
_dup, _dup2, _close, _fdopen, _pipe.
* The function pipe is now returning the octave file streams.
* Minor modifications in the makefiles.
Octave 2.05 Build 04:
*********************
* inst-octave.cmd and updt-octave.cmd patched.
* Patches included:
input.cc (octave_read):
Don't forget to free input buffer if it exists and has zero length.
(gnu_readline):
Free buf if fgets returns 0.
parse.y:
Parse error will not abort Octave, when forced_interactive "-i"
Array2-idx.h (Array2<T>::maybe_delete_elements):
Prevent out-of-bounds indexing of the index array.
Array-idx.h (Array<T>::maybe_delete_elements): Likewise.
idx-vector.cc (IDX_VEC_REP::is_colon_equiv):
Make it work when the vector is not sorted.
Octave 2.05 Build 03:
*********************
* lex.l patched:
help will work with text mode files, even if the help text is not at the
beginning of the file.
* Lisp files modified:
hilit19 will not be loaded, when running emacs in normal text mode.
* parse.y patch included:
Using formal parameters for functions, the names of which are already
being used by builtin functions, will not produce errors. For example:
function y=f(type), y=type; end;
* variables.cc patched: <CR>s are not copied into the help text.
* The full name of the executable can be specified in .emacs.
* inst-octave.cmd and updt-octave.cmd patched.
* lex.l patched: Octave reads script and function files with lines like:
x = x + ...
3;
Octave 2.05 Build 02:
*********************
* New internal system routine (also used in procbuf):
All / in the executable are replaced by \ when using cmd.exe or 4os2.exe
as shell and all \ are replaced by / when using a UNIX shell.
* make-octfile.cmd patched: The dynamic loading of function will
under OS/2 2.xx.
* nextpow2.m patched: nextpow2(1000) returns 10.
* inst-octave.cmd patched: scripts.fat will be renamed to scripts on FAT.
* The files in the subdirectory doc are FAT compatible.
* Octave reads script and function files with lines like:
M = [1 2
3 4]
Octave 2.05 Build 01:
*********************
* New version: Octave 2.0.5
* help will work with text (<CR>>LF>) files.
* No endfunction is needed at the end of a function file.
* Octave uses noncontinous multiple heaps. So the heap size is no longer
fixed to 32 MB.
* Image viewer and GNUPlot can be used at the same time again.
The environment variable OCTAVE_IMAGE_VIEWER is supported again.
* (require 'hilit19) added in lisp files.
* octave-mode.el modified: switch/case/otherwise/endswitch statement included.
Octave 2.02 Build 02:
*********************
* Bug in usleep fixed. plot works again.
* erf(x) and erfc(x) are supported. Bug in erfinv.m is fixed.
* gamma(2000) no longer aborts Octave.
* Bugfixes in the installationsscript. Corrected README.OS2
* Default value of IMAGEPATH now points to ../scripts/image.
* Patch included (oct-stream.cc):
scanf reads correctly when using %f or %e.
Octave 2.02 Build 01:
*********************
* POPEN2.M modified: The script now uses the new function spawn to start
the child process.
* The environment variable OCTAVE_IMAGE_VIEWER is no longer supported. Modify
the script file IMAGE.M, if you want to use another image viewer.
* Function added: child_purge_temp_file. It removes the temporary file
when the specified child process dies (used in IMAGE.M).
* The pipe function returns the file handles and not the Octave's file ids.
Use fdopen to open the handles!
* Functions added: dup, close, fdopen.
* Function added: spawn.
* Octave reads OS/2 BMP (version 1.0) Windows BMP, PNM (P1 - P6) and
Octave's IMG format. It writes OS/2 BMP (version 1.0) Windows BMP,
PNM (P5, P6), Postscript and Octave's IMG format. LOADIMAGE.M and
SAVEIMAGE.M are modified (the original version are in the archive
image.zip).
* New version: Octave 2.0.2
* Bug fixes in dlfcn.lib.
Octave 2.01 Build 01:
*********************
* Dynamik Linking is now supported! See hello.cc and make_int.cc for
example. A small bug in make_int.cc fixed.
* Bug in xor.m fixed.
* Bug in the installation script fixed: The script will not replace the first
"\DLL" in LIBPATH, if Octave is installed for the first time on a system.
* The installation script is renamed to inst-octave.cmd.
* New version 2.0.1.
* All C++ Code is now placed in DLLs.
* GNUPLOT is started as normal VIO, so gshow will work. Also because of other
changes in the code, CTRL-C works even when GNUPLOT is started.
* Minor changes in the sources.
Octave 2.00 Build 01:
*********************
* New version: Octave 2.0.
* Script and function files are loaded correctly even if they contain an
End-of-file character. This character will be interpreted as a newline
character.
* saveimage saves images in bmp, gif and ps files.
*******************************************************************************
** Changes since the Version 1.1.1 of Octave for OS/2 **
*******************************************************************************
Octave 1.94 Build 01:
*********************
* New version 1.94 (pre-2.0). Keep in mind:
***************************************************************************
** Octave 1.94 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in version 2.0 **
***************************************************************************
* New command line flag '-I'. It forces interactive behaviour, but
deactivates the pager, even if Octave is in interactive mode.
* Every signal which will cause a jump to toplevel (Octave prompt), will
be handled differently if a script or function file is executed: It will
be handled as an error.
* A new installation script: This script make changes in the config.sys,
.octaverc, .emacs and dir. It unzips the scriptfiles and creates an object
on the desktop! The info-files will be copied to the correct directory
and older DLLs coming with EMX will be removed, if necessary.
Octave 1.93 Build 02:
*********************
* Script and function files are loaded correctly even if they no text file
(CR/LF).
* The sigchld_handler in sighandlers.cc is patched:
When no child in octave_child_list has created SIGCHLD, waitpid is
executed. This solves problems with displaying images when GNUPLOT is
running, and similar problems.
* Octave's system command now correctly returns the output or the pid,
depending on the number or values of the arguments.
* The image viewer is started in "async" mode.
Octave 1.93 Build 01:
*********************
* New version 1.93 (pre-2.0). Keep in mind:
***************************************************************************
** Octave 1.93 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in version 2.0 **
***************************************************************************
* Changes in octave.el: hilit19 is used for octave-shell-mode.
Octave 1.92 Build 02:
*********************
* get_size () in oct-stream.cc patched:
fread works with a scalar as second argument.
* Function kbhit () in sysdep.cc calls flush_octave_stdout.
* sighandlers.cc and toplev.cc patched:
Ctrl-C and Ctrl-Break will work more than only once again.
Octave 1.92 Build 01:
*********************
* New version 1.92 (pre-2.0). Keep in mind:
***************************************************************************
** Octave 1.92 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in version 2.0 **
***************************************************************************
* Minor bug fixes in octave-info.el.
* Changes in octave-mode.el: hilit19 is used for editing script files.
* New command add to the Emacs-Shell-Mode for Octave: warranty, multiplot,
close multiplot, subwindow.
* Minor changes in the the makefiles for OS/2. These changes do not
modify the binary.
Octave 1.91 Build 01:
*********************
* New version 1.91 (pre-2.0). Keep in mind:
***************************************************************************
** Octave 1.91 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in version 2.0 **
***************************************************************************
Octave 1.90 Build 01:
*********************
* New version 1.90 (pre-2.0). Keep in mind:
***************************************************************************
** Octave 1.90 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in version 2.0 **
***************************************************************************
* New libraries (readline, kpathsea).
* Octave uses again an internal info viewer. This ensures that it runs
correctly under the control of Emacs.
* Signal handler for SIGCHLD gepatcht.
* Octave needs the GNUPLOT 3.6 beta to display multiple plots.
* Since the new compiler supports multiple heaps it is no longer
necessary to fix the heap size during the installation.
* The environment variable specifies the name of the init file octave executes
on startup.
*******************************************************************************
** Changes since the Version 1.1.0 of Octave for OS/2 **
*******************************************************************************
Octave 1.1.1 Build 08:
**********************
* The cursor type will be selected in readline.
* New Compiler (emx-gcc 0.9c) and libraries used.
* The Stacksize has been increased.
* Signal handling is improved: Ctrl-Break always acts in the same way Ctrl-C
does. No signal handler for SIGTERM!
Octave 1.1.1 Build 07:
**********************
* All FPE signals are now explicity masked off. The fixes the bugs when
running Octave on systems with GAMESRVR.DLL.
Octave 1.1.1 Build 06:
**********************
* Pause now works also when running Octave under Emacs.
* The Octave's 'system' (or 'shell_cmd') is fixed. This fixes also the bug in
saveimage.
* xvos2 now uses the image viewer specified in the environment variable
OCTAVE_IMAGE_VIEWER, if set, or ib.exe if not.
Octave 1.1.1 Build 05:
**********************
* New Compiler (emx-gcc 0.9B) and libraries (stdcpp, libg++, ...)
* New info browser version 2.14
* parse.y was patched:
A parse error will not abort the parser, if octave is forced to be
interactive (-i).
* lex.l was patched:
SIGINT will not crash Octave, if octave is forced to be interactive (-i).
* info will not kill the octave process, if the terminal type is emacs.
It displays a message, so that emacs can start its own info browser.
* The routines read and write in liboctave/dMatrix.cc are patched:
The streams are set to binary mode before writing/reading and set back to
text mode after.
* Emacs-Shell-Mode for Octave including Info, temporary files, script files.
* New function in Octave: add_to_command_number.
Octave 1.1.1 Build 04:
**********************
* image uses now ib.exe (the Multimedia Viewer coming with Warp) to view
the images. This works also when GNUPLOT is running.
* GNUPLOT is now started as PM program in a different session. Now one can
use Ctrl-C to interrupt Octave, when Gnuplot is running.
* Internal Changes in Iostream:
New function _io_popen (used in the member functions of the class procbuf):
The command is now executed direct, without the command processor cmd.exe
(or ...). The way the program is started (PM, Session, ...) is specified
in the third argument of _io_popen. If this fails, the command is
executed via the command processor.
* A new signal handler (SIGINT) for parse_and_execute: The script files
are closed, if the execution is interrupted by the user. The signal works
like an error!
Octave 1.1.1 Build 03:
**********************
* The signal handler is fixed: Ctrl-C works now more than only ones.
Octave 1.1.1 Build 02:
**********************
* The function script polyreduce.m is fixed. So the functions deconv and
residue are working.
* The Fortran and C routines are now in DLLs. This reduces the size of the
executable and octave needs not so much memory at start time.
* The libraries of info, kpathsea and readline are linked using DLLs. The
stand-alone info browser (info.exe) uses also that DLLs.
* The heap is not longer fixed to 32 MB (by emx gcc). The user can select the
best heap size for his problems and his system.
* The iostream library is fixed: Octave reads binary files (load -b or
load -m).
* A few changes in the source code.
* New Version of Octave (1.1.1).
* Octave no longer hangs the WPS, if it is closed by typing quit, while
GNUPLOTPM is still running.
*******************************************************************************
** Changes since the Version 1.0 of Octave for OS/2 **
*******************************************************************************
* Octave now uses ';' as separator in paths.
* Drives are now supported in paths. So you can start octave from a
different drive and octave will find the script files.
* Drives are also supported in 'cd' and 'pwd'.
* Control-C works more than once.
* By defining USE_EXTERNAL_TEMPLATES and using emxbind -s I made the file
octave.exe much smaller.
* The temporary files created by the commands edit_history and run_history
are deleted.
* The info files are changed for FAT.
* I create a second set of script files, patched for FAT.
* Octave uses the file in the environment variable OCTAVE_INITFILE instead
of .octaverc, if the variable is set.
* New Version of Octave (Version 1.1.0)
* New Compiler (emx-gcc 0.9A) and libraries (iostream 0.66)
* I add the extproc-statement.
* Octave executes now a interactive script from a file in the command line.
* Images can be viewed using ghostscript.
* Octave uses now GNUPLOT 3.5. |
hobbes.nmsu.edu/download/pub/os2/apps/math/octave/octave-2.0.17-b01a.zip | ||
Octave v. 2.0.17 (merlin.dll missing from octave-2.0.17-b01a.zip, 31/7/2002, Klaus Gebhardt) | Readme/What's new |
This archive contains only the missing merlin.dll of the first upload. |
hobbes.nmsu.edu/download/pub/os2/apps/math/octave/octave-2.0.17-p01a.zip | ||
Octave v. 2.0.17 (source Code, 31/7/2002, Klaus Gebhardt) | ||
hobbes.nmsu.edu/download/pub/os2/apps/math/octave/octave-2.0.17-s01.zip | ||
Octave v. 2.1.23 (18/1/2000, Klaus Gebhardt) | Readme/What's new |
Octave -- a high-level language for numerical computations.
**************************************************************************
** P L E A S E N O T E **
**************************************************************************
** Because i no longer work for the Technical University of **
** Darmstadt, my email address has changed: **
** **
** 100114.1371@compuserve.com **
** gebhardt@wotan.ikp.physik.tu-darmstadt.de **
** **
** The CompuServe address is the more reliable address! **
** **
** Sorry for the inconvenience, **
** Klaus Gebhardt **
**************************************************************************
**************************************************************************
** P L E A S E N O T E **
**************************************************************************
** This is a development version of Octave. Development releases **
** are provided for people who want to help test, debug, and improve **
** Octave. **
** **
** If you want a stable, well-tested version of Octave, you should be **
** using one of the stable releases (when this development release **
** was made, the latest stable version was 2.0.13). **
**************************************************************************
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.
Used Compiler and Libraries
---------------------------
Octave for OS/2 is compiled using EMX-GCC 0.9C (with EMXFIX04) and
libg++ 2.7.2.
The fortran routines are translated to C using f2c.
Binary Distribution
-------------------
Why a binary distribution?
1. There are only minor changes made in the source files of octave. The main
job was patching stdcpp, info, kpathsea and readline.
2. octave is big (40 MB with the source, object files and libraries) and it
takes time to compile the program. (ca. 50 minutes on my
133 MHz Pentium-Overdrive system = ca. 8 hours on a 486DX-33).
Compiling Octave
----------------
If you want to compile Octave yourself you must download the patched sources and
unpack them. Modify the paths in the file makeversions depending on your
system setup an run 'make octave'.
Files
-----
The files BUGS, CHANGELO, CHANGELO.1, COPYING, NEWS, NEWS.1, PROJECTS, README,
ROADMAP, SENDING.PAT and THANKS are part of the octave 2.1.23 source code.
In the zip file scripts.zip are the scripts coming with octave 2.1.23.
The installation script will unzip the correct set of script files for
your file system.
The files COPYING.EMX, emx.dll, emxlibcs.dll and termcap.dat are part of the
emx 0.9c package (with EMXFIX04 applied, see COPYING.EMX).
octave.exe and octave.ico are the executable and the icon of the main program.
The file octave.exe must no longer be build by the install program!
info.exe is the standalone info browser coming with EMX. It was recompiled
so that info.exe and octave.exe uses the same DLL (gnuinfo.dll). And it is
patched so that info.exe accepts the '--index-search' option.
gnuview.exe is a replacement for info.exe: It accepts the same command
line option, but it starts OS/2s view.exe.
mkfifo.exe is the utility for creating, removing and listing named pipes. It
starts the program nmpserv.exe, if neccessary.
The program oct-view.exe is used for starting the image viewer.
README.OS2 is the file you are reading.
In the directory 'lisp' you find the elisp files (and the compiled elisp files)
you need to run Octave in an Emacs subshell and the files for editing script
files or temporary files of octave using the Emacs editor.
In the directory 'doc' you can find the documentation in dvi, postscript,
and also the info files and the INF files.
In the directory 'dll' you can find the Dynamic Link Libraries of octave and
emx, and the file termcap.dat is in the directory etc.
All files you need for using the dynamic loading in Octave for loading your
own C++ routines into Octave are in 'dlfcn' and its subdirectories.
Other Files of Interest
-----------------------
octa21Fb.zip or octave-2.1.23-b??.zip:
The binary distribution of Octave-2.1.23.
octa21Fp.zip or octave-2.1.23-p??.zip:
This archive contains always the update to the newest build.
octa21Fs.zip or octave-2.1.23-s??.zip:
The patched source code for octave (including info, kpathsea,
iostream, readline and pnm).
You need also the following packages. They are available on ftp.cdrom.com,
hobbes.nmsu.edu and wotan.ikp.physik.tu-darmstadt.de. less and gnufutil
should be also on ftp.uni-stuttgart.de and ftp.leo.org, and the gnuplot
beta on cmpc1.phys.soton.ac.uk.
less252-2.zip: The less pager ported by Kai Uwe Rommel.
(I know there is a newer version, but i forgot the number :-))
gp315os2b.zip: GNUPLOT 3.6 (beta 315)
gnufutil.zip : The GNU file utilities.
pmvu93.zip : PM View 0.93.
Updating to the most recent build level
---------------------------------------
**************************************************************************
** BEFORE APPLYING A PATCH MAKE SURE THAT THE PATCH IS FOR YOUR **
** INSTALLED OCTAVE VERSION (CHECK THE TIMESTAMPS OF THE FILES). **
**************************************************************************
** DO NOT INSTALL AN OLDER PATCH OVER A NEWER VERSION OF OCTAVE! **
**************************************************************************
1. First you must install Octave. See Installation below.
2. Unzip the patches into the directory you have Octave/2 installed in.
3. Change into that directory and type 'updt-octave'
4. Type 'inst-octave /clean'
Installation
------------
Change to the directory of octave and run install (REXX must be installed!):
1. Type 'inst-octave /install':
The script make changes in the config.sys, .octaverc, .emacs and dir.
It unzips the scriptfiles, removes older emx-dlls, copies the info-files
to the INFO directory and creates an object on the desktop!
For all modified or deleted files it will create backups in the current
directory.
**************************************************************************
** BEFORE REBOOTING CONFIRM THE CHANGES THIS SCRIPT WILL HAVE DONE **
** IN YOUR CONFIG.SYS! **
**************************************************************************
** IF THERE IS SOMETHING WRONG PLEASE SEND ME A NOTE! **
**************************************************************************
2. If necessary the script will ask you to reboot. Do so.
3. To save disk space you can use 'inst-octave /clean'. All the files you
don't need for running octave are deleted. All backup files are also
removed.
The setup script modify the following parts of the config.sys, if necessary:
PATH=...;h:\apps\science\octave;
LIBPATH=...;h:\apps\science\octave\dll;
The directory you have Octave installed in:
SET OCTAVE_HOME=c:/octave
Terminal type and a pointer to the TERMCAP.DAT file:
SET TERM=ansi
SET TERMCAP=h:/apps/science/octave/etc/termcap.dat
Your home directory (place of your initialization files)
SET HOME=h:/.
The name of the initialization file:
SET OCTAVE_INITFILE=octave.ini
The directory for your info files:
SET INFOPATH=.;h:/apps/science/octave/doc
The directory of Gnuplot:
SET GNUPLOT=h:/apps/science/gnuplot
Running Octave
--------------
When you start octave (without -f, --norc or --ignore-init-file), octave will
execute the following files:
1. scripts\startup\octaverc:
Octave will use the editor 'emacsclient' and the pager 'less'. The info
files are located using the environment variable INFOPATH and the
gnuplot_binary using the environment variable GNUPLOT.
2. The file, which name is given by the environment variable OCTAVE_INITFILE,
or .octaverc, if there is no OCTAVE_INITFILE. Both are searched in your
HOME directory.
You can use octave as an external processor in an batch file, if the first
line in the batch file is
extproc octave -q
or
EXTPROC octave -q.
This is the same as using octave -q file.cmd.
GNUPLOT
-------
Octave uses GNUPLOT to display plots. I have tested octave with GNUPLOT 3.6
(beta 315). The system-wide startup file octaverc in the directory
scripts/startup reads the environment variable GNUPLOT and appends
"/gnuplot.exe". This should be the path and name of GNUPLOT. So if the
executable (gnuplot.exe) is in the directory h:\apps\science\gnuplot
add the following line to your config.sys:
SET GNUPLOT=h:/apps/science/gnuplot
You must use the beta of GNUPLOT because it supports multiple plots.
PAGER
-----
If you want to use the less pager, you need the file less252-2.zip or newer.
This less port does not use the termcap library, so it is unable to work with
ansi-color-2, ansi-color-3,...
If you want to use ansi-color-3, you must recompile less after deleting
termcap.c and adding the termcap-library in the makefile, or you must edit
the file termcap.dat: Replace every tc=ansi in the termcap.dat by the lines
following ansi.
EMACS
-----
You can use emacs to edit the script files of octave. To do so add the lines
(setq load-path (append '("h:/apps/science/octave/lisp") load-path))
(autoload 'octave-mode "octave-mode" "Enter Octave mode." t)
(setq auto-mode-alist (cons '("\\.[Mm]$" . octave-mode) auto-mode-alist))
(defun my-octave-mode-hook ()
(setq fill-column 76)
(auto-fill-mode 1))
(setq octave-mode-hook 'my-octave-mode-hook)
(setq octave-prog-filename "h:/apps/science/octave/octave.exe")
to your .emacs.
If you run emacs in server mode, octave can use the emacsclient for editing
temporary files. Add the following lines to .emacs:
(autoload 'octave-tmp-mode "octave-tmp-mode" "Enter Octave's tmp mode." t)
(setq auto-mode-alist
(cons '("[Oo][Cc][Tt]-....\\.[Tt][Mm][Pp]$" . tmp-mode)
auto-mode-alist))
The tmp mode is the normal text mode with one exception: If you finished
editing by pressing C-x # the buffer is killed. So octave can delete the file.
If you want to run Octave in a special shell mode under Emacs you must also
add the following line to .emacs:
(require 'octave)
There is also another octave shell mode, which is normally part of
Octave. The file is called octave.el. I do not use it, because it created
a lot of problems on my system AND it won't work correctly.
For example your .emacs file should look like this:
(setq load-path (append '("h:/apps/science/octave/lisp") load-path))
(require 'octave)
(autoload 'octave-mode "octave-mode" "Enter Octave mode." t)
(setq auto-mode-alist (cons '("\\.[Mm]$" . octave-mode) auto-mode-alist))
(defun my-octave-mode-hook ()
(setq fill-column 76)
(auto-fill-mode 1))
(setq octave-mode-hook 'my-octave-mode-hook)
(setq octave-prog-filename "h:/apps/science/octave/octave.exe")
(autoload 'octave-tmp-mode "octave-tmp-mode" "Enter Octave's tmp mode." t)
(setq auto-mode-alist
(cons '("[Oo][Cc][Tt]-....\\.[Tt][Mm][Pp]$" . octave-tmp-mode)
auto-mode-alist))
Dynamic Loading of C++ Functions
--------------------------------
This port now supports the dynamic loading. Use the script MAKE-OCTFILE to
compile your scripts EVERY time you installed a new version of Octave! The
script MAKE-OCTFILE is created by INST-OCTAVE.
For example:
cd dlfcn\examples
make-octfile hello.cc
and add the path '.../dlfcn/examples' to Octave's LOADPATH; start Octave and
type 'hello (1,2,3)'.
You can find examples in the directories '.../dlfcn/examples' and
'scripts/image/codecs'.
Images
------
Octave for OS/2 uses the excellent PM View. If you want to use a different
viewer or if your PM View is installed in directory other then
h:\apps\graphics\pmview, set the environment variable OCTAVE_IMAGE_VIEWER.
You can use the environment variable OCTAVE_IMAGE_VIEWER_OPT for specifying
command line options: For example:
SET OCTAVE_IMAGE_VIEWER=c:\pmview\pmview.exe
SET OCTAVE_IMAGE_VIEWER_OPT=/WPos(,,,,ForAct)
For loading and saving images Octave uses now the DLFCN feature. Octave can
read and write BMP, PNM, IMG formats and write Postscript.
MKFIFO
------
The mkfifo command is now supported! You can use Octave's mkfifo command
to create a named pipe for communication with another program (local or
in a LAN). There is also a utility called mkfifo, which can be used for
creating, removing, listing named pipes, you have created with mkfifo.
The names of the pipes must start with '\PIPE' or with '/PIPE'. If you want
access to a pipe on another computer in your LAN you must prepend
'\\HOSTNAME', where HOSTNAME stands for the name of the computer.
For example:
1) Start octave.
2) Open an OS/2 window.
3) Run mkfifo \PIPE\TEST
4) Type 'echo abcdef >\PIPE\TEST' in the OS/2 window
5) In Octave execute the following commands:
fid = fopen ("/PIPE/TEST", "r");
fgets (fid)
fclose (fid);
6) Run mkfifo -d \PIPE\TEST in the OS/2 window
To speed up the execution of the first mkfifo command you can add the
following in your STARTUP.CMD:
detach [DRIVE:]\[PATH]\nmpserv --noexit
Known Limitations, Modifications and Bugs
-----------------------------------------
1) fork is not supported, use spawn instead. Compare the script file popen2.m
with the original version (popen2.org).
2) dup2 has been renamed to _dup2
3) Because of an OS/2 limitation dynamic loading of C++ functions will only
work, if the length of the function name is less than 8 characters.
Comments, Bugs, Problems, Ideas, ...
------------------------------------
If you have any problem installing or using this port, let me know!
If have any idea to make octave for OS/2 a better program, send me a mail.
Also any comments are welcome.
And thanks for all your nice mails i received, and thanks to all of you
helping me to remove the bugs.
My email addresses are:
INTERNET: 100114.1371 @ compuserve . com
gebhardt @ wotan . ikp . physik . tu - darmstadt . de
CompuServe: 100114,1371
Klaus Gebhardt [TEAM OS/2]
Competence Center Architecture and Technology
Deutsche Boerse Systems
*******************************************************************************
** Changes since the Version 2.09 of Octave for OS/2 **
*******************************************************************************
Octave 2.1.23 Build 01:
***********************
* New version:
***************************************************************************
** Octave 2.1.14 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in the next version. **
***************************************************************************
Octave 2.1.14 Build 02:
***********************
* atanh(1) and acoth(1) will no longer crash Octave (liboctave/lo-mappers.cc).
* clc clears the whole screen (liboctave/cmd-edit.cc).
* help for all the mapper functions (erf, erfc, gamma, ...) has been fixed.
Octave 2.1.14 Build 01:
***********************
* New version:
***************************************************************************
** Octave 2.1.14 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in the next version. **
***************************************************************************
Octave 2.0.14 Build 02:
***********************
* atanh(1) and acoth(1) will no longer crash Octave.
Octave 2.0.14 Build 01:
***********************
* New Version 2.0.14
* diary bug fixed: User input when running a script will now be written into
the diary file.
Octave 2.0.13 Build 02:
***********************
* oregon.cc renamed.
* Patch included:
src/file-io.cc and liboctave/data-conv.cc: uint16 and uint32 types supported
in fread.
* Complex erf added to examples for dlfcn.
* Patch included:
data.cc: is_complex added.
* GNU Info updated to version 2.18.
* kpathsearch version 3.2 used.
* Help in image.m is now correct.
Octave 2.0.13 Build 01:
***********************
* New Version 2.0.13
* Plot functions patched.
* Patch included:
DASSL.cc (DASSL::do_integrate): If an exception occurs in the
call to ddassl, set integration_error to 1 before calling the
error handler and returning.
* Patch included:
Array2-idx.h (assign): Allow A([],[]) = scalar and, if
do_fortran_indexing is set, A([]) = scalar.
Array-idx.h (assign): Allow A([]) = scalar.
* Patch included:
time.cc (extract_tm): Truncate field values instead of rounding.
(Fgmtime, Flocaltime): Likewise, for timeval.
Octave 2.0.11 Build 02:
***********************
* New Version 2.0.11
* Patch included:
symtab.cc (symbol_record::variable_value): Avoid dereferencing
NULL pointer.
* Patch included:
lo-spec-fun: the order of the arguments in the gammai and gammainc.
* Patch included:
error.cc (verror): Fix thinko in attempt to skip `error: ' tag
when buffering error messages.
pt-cmd.cc (tree_try_catch::eval): Reset buffer_error_messages
here if just discarding unwind_protect frame.
* Typos in mplot.m fixed.
* __pltopt__ functionality extended:
Now, for plot (x, y, fmt) in the cases where either x or y (or both)
are matrices, fmt can also be a string array. The rows of the string
array correspond to the lines on the plot:
plot/__pltopt1.m__: New file.
plot/__pltopt.m__: Handle opt as a string array by calling
__pltopt1__ multiple times and returning a string array with rows
corresponding to the rows of opt.
plot/__plt2ss__.m, plot/__plt2vv__.m, plot/__plt2vm__.m,
plot/__plt2mv__.m, plot/__plt2mm__.m: Handle fmt as a string
array.
Octave 2.0.10 Build 01:
***********************
* New Version 2.0.10
* Default install path changed (h:/apps/science/octave).
Octave 2.09.98 Build 01:
************************
* New Version 2.0.9.98 (Beta)
Octave 2.09.97 Build 01:
************************
* New Version 2.0.9.97 (Beta)
*******************************************************************************
** Changes since the Version 1.9x of Octave for OS/2 **
*******************************************************************************
Octave 2.09 Build 04:
*********************
* makefile.os2 modified: This corrects the missing xmalloc.lib problem, when
using make-octfile.
* lgamma(-2) no longer aborts Octave.
* Minor changes in the source code.
* Patch for filter.cc included.
* sighandlers.cc (octave_child_list::do_remove) and
toplev.cc (run_command_and_return_output) modified:
[a,b] = system ("dir") returns the correct return value in b.
* Patch included:
* pt-mat.h (tree_matrix_row::preserve_expr): New private data.
(tree_matrix_row::~tree_matrix_row): Delete list contents.
(tree_matrix::~tree_matrix): Delete list contents.
* pt-mat.cc (tree_matrix_row::to_return_list): Set preserve_expr
to true if successful.
* get_boot_drive in inst-octave.cmd and updt-octave.cmd patched.
* Patch included:
* input.cc (get_user_input): Return an empty string if the user
just types RET.
Octave 2.09 Build 03:
*********************
* mkfifo is now supported.
* inst-octave.cmd creates WPS objects for the documentation.
* The documentation is now also available in OS/2's INF format. You can
view them using gnuview as Octave's external info viewer.
* Compiler updated (EMXFIX03).
* Bug in logm (wrong result for a complex scalar argument) fixed.
* Minor changes in the sources and makefiles.
* Workaround for the bug in the fortran routine DGELSS added (in CMatrix.cc).
* Patch included:
* idx-vector.cc (IDX_VEC_REP::sort): New function.
* idx-vector.h (idx_vector::sort): Ditto.
* Array2-idx.h (Array2<T>::maybe_delete_elements): Use it before
trying to delete elements specified by the index vectors.
Octave 2.09 Build 02:
*********************
* Bug in cruft4.def fixed, which caused Octave to crash, when trying to
compute eig(A), with a complex matrix A.
Octave 2.09 Build 01:
*********************
* New Version 2.0.9.
Octave 2.08 Build 01:
*********************
* New Version 2.0.8.
* Patch for pt-fvc.cc included.
Octave 2.07 Build 01:
*********************
* New Version 2.0.7.
Octave 2.06 Build 01:
*********************
* New Version 2.0.6.
* All functions working with FILE IDS (file handles) are renamed:
_dup, _dup2, _close, _fdopen, _pipe.
* The function pipe is now returning the octave file streams.
* Minor modifications in the makefiles.
Octave 2.05 Build 04:
*********************
* inst-octave.cmd and updt-octave.cmd patched.
* Patches included:
input.cc (octave_read):
Don't forget to free input buffer if it exists and has zero length.
(gnu_readline):
Free buf if fgets returns 0.
parse.y:
Parse error will not abort Octave, when forced_interactive "-i"
Array2-idx.h (Array2<T>::maybe_delete_elements):
Prevent out-of-bounds indexing of the index array.
Array-idx.h (Array<T>::maybe_delete_elements): Likewise.
idx-vector.cc (IDX_VEC_REP::is_colon_equiv):
Make it work when the vector is not sorted.
Octave 2.05 Build 03:
*********************
* lex.l patched:
help will work with text mode files, even if the help text is not at the
beginning of the file.
* Lisp files modified:
hilit19 will not be loaded, when running emacs in normal text mode.
* parse.y patch included:
Using formal parameters for functions, the names of which are already
being used by builtin functions, will not produce errors. For example:
function y=f(type), y=type; end;
* variables.cc patched: <CR>s are not copied into the help text.
* The full name of the executable can be specified in .emacs.
* inst-octave.cmd and updt-octave.cmd patched.
* lex.l patched: Octave reads script and function files with lines like:
x = x + ...
3;
Octave 2.05 Build 02:
*********************
* New internal system routine (also used in procbuf):
All / in the executable are replaced by \ when using cmd.exe or 4os2.exe
as shell and all \ are replaced by / when using a UNIX shell.
* make-octfile.cmd patched: The dynamic loading of function will
under OS/2 2.xx.
* nextpow2.m patched: nextpow2(1000) returns 10.
* inst-octave.cmd patched: scripts.fat will be renamed to scripts on FAT.
* The files in the subdirectory doc are FAT compatible.
* Octave reads script and function files with lines like:
M = [1 2
3 4]
Octave 2.05 Build 01:
*********************
* New version: Octave 2.0.5
* help will work with text (<CR>>LF>) files.
* No endfunction is needed at the end of a function file.
* Octave uses noncontinous multiple heaps. So the heap size is no longer
fixed to 32 MB.
* Image viewer and GNUPlot can be used at the same time again.
The environment variable OCTAVE_IMAGE_VIEWER is supported again.
* (require 'hilit19) added in lisp files.
* octave-mode.el modified: switch/case/otherwise/endswitch statement included.
Octave 2.02 Build 02:
*********************
* Bug in usleep fixed. plot works again.
* erf(x) and erfc(x) are supported. Bug in erfinv.m is fixed.
* gamma(2000) no longer aborts Octave.
* Bugfixes in the installationsscript. Corrected README.OS2
* Default value of IMAGEPATH now points to ../scripts/image.
* Patch included (oct-stream.cc):
scanf reads correctly when using %f or %e.
Octave 2.02 Build 01:
*********************
* POPEN2.M modified: The script now uses the new function spawn to start
the child process.
* The environment variable OCTAVE_IMAGE_VIEWER is no longer supported. Modify
the script file IMAGE.M, if you want to use another image viewer.
* Function added: child_purge_temp_file. It removes the temporary file
when the specified child process dies (used in IMAGE.M).
* The pipe function returns the file handles and not the Octave's file ids.
Use fdopen to open the handles!
* Functions added: dup, close, fdopen.
* Function added: spawn.
* Octave reads OS/2 BMP (version 1.0) Windows BMP, PNM (P1 - P6) and
Octave's IMG format. It writes OS/2 BMP (version 1.0) Windows BMP,
PNM (P5, P6), Postscript and Octave's IMG format. LOADIMAGE.M and
SAVEIMAGE.M are modified (the original version are in the archive
image.zip).
* New version: Octave 2.0.2
* Bug fixes in dlfcn.lib.
Octave 2.01 Build 01:
*********************
* Dynamik Linking is now supported! See hello.cc and make_int.cc for
example. A small bug in make_int.cc fixed.
* Bug in xor.m fixed.
* Bug in the installation script fixed: The script will not replace the first
"\DLL" in LIBPATH, if Octave is installed for the first time on a system.
* The installation script is renamed to inst-octave.cmd.
* New version 2.0.1.
* All C++ Code is now placed in DLLs.
* GNUPLOT is started as normal VIO, so gshow will work. Also because of other
changes in the code, CTRL-C works even when GNUPLOT is started.
* Minor changes in the sources.
Octave 2.00 Build 01:
*********************
* New version: Octave 2.0.
* Script and function files are loaded correctly even if they contain an
End-of-file character. This character will be interpreted as a newline
character.
* saveimage saves images in bmp, gif and ps files.
*******************************************************************************
** Changes since the Version 1.1.1 of Octave for OS/2 **
*******************************************************************************
Octave 1.94 Build 01:
*********************
* New version 1.94 (pre-2.0). Keep in mind:
***************************************************************************
** Octave 1.94 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in version 2.0 **
***************************************************************************
* New command line flag '-I'. It forces interactive behaviour, but
deactivates the pager, even if Octave is in interactive mode.
* Every signal which will cause a jump to toplevel (Octave prompt), will
be handled differently if a script or function file is executed: It will
be handled as an error.
* A new installation script: This script make changes in the config.sys,
.octaverc, .emacs and dir. It unzips the scriptfiles and creates an object
on the desktop! The info-files will be copied to the correct directory
and older DLLs coming with EMX will be removed, if necessary.
Octave 1.93 Build 02:
*********************
* Script and function files are loaded correctly even if they no text file
(CR/LF).
* The sigchld_handler in sighandlers.cc is patched:
When no child in octave_child_list has created SIGCHLD, waitpid is
executed. This solves problems with displaying images when GNUPLOT is
running, and similar problems.
* Octave's system command now correctly returns the output or the pid,
depending on the number or values of the arguments.
* The image viewer is started in "async" mode.
Octave 1.93 Build 01:
*********************
* New version 1.93 (pre-2.0). Keep in mind:
***************************************************************************
** Octave 1.93 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in version 2.0 **
***************************************************************************
* Changes in octave.el: hilit19 is used for octave-shell-mode.
Octave 1.92 Build 02:
*********************
* get_size () in oct-stream.cc patched:
fread works with a scalar as second argument.
* Function kbhit () in sysdep.cc calls flush_octave_stdout.
* sighandlers.cc and toplev.cc patched:
Ctrl-C and Ctrl-Break will work more than only once again.
Octave 1.92 Build 01:
*********************
* New version 1.92 (pre-2.0). Keep in mind:
***************************************************************************
** Octave 1.92 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in version 2.0 **
***************************************************************************
* Minor bug fixes in octave-info.el.
* Changes in octave-mode.el: hilit19 is used for editing script files.
* New command add to the Emacs-Shell-Mode for Octave: warranty, multiplot,
close multiplot, subwindow.
* Minor changes in the the makefiles for OS/2. These changes do not
modify the binary.
Octave 1.91 Build 01:
*********************
* New version 1.91 (pre-2.0). Keep in mind:
***************************************************************************
** Octave 1.91 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in version 2.0 **
***************************************************************************
Octave 1.90 Build 01:
*********************
* New version 1.90 (pre-2.0). Keep in mind:
***************************************************************************
** Octave 1.90 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in version 2.0 **
***************************************************************************
* New libraries (readline, kpathsea).
* Octave uses again an internal info viewer. This ensures that it runs
correctly under the control of Emacs.
* Signal handler for SIGCHLD gepatcht.
* Octave needs the GNUPLOT 3.6 beta to display multiple plots.
* Since the new compiler supports multiple heaps it is no longer
necessary to fix the heap size during the installation.
* The environment variable specifies the name of the init file octave executes
on startup.
*******************************************************************************
** Changes since the Version 1.1.0 of Octave for OS/2 **
*******************************************************************************
Octave 1.1.1 Build 08:
**********************
* The cursor type will be selected in readline.
* New Compiler (emx-gcc 0.9c) and libraries used.
* The Stacksize has been increased.
* Signal handling is improved: Ctrl-Break always acts in the same way Ctrl-C
does. No signal handler for SIGTERM!
Octave 1.1.1 Build 07:
**********************
* All FPE signals are now explicity masked off. The fixes the bugs when
running Octave on systems with GAMESRVR.DLL.
Octave 1.1.1 Build 06:
**********************
* Pause now works also when running Octave under Emacs.
* The Octave's 'system' (or 'shell_cmd') is fixed. This fixes also the bug in
saveimage.
* xvos2 now uses the image viewer specified in the environment variable
OCTAVE_IMAGE_VIEWER, if set, or ib.exe if not.
Octave 1.1.1 Build 05:
**********************
* New Compiler (emx-gcc 0.9B) and libraries (stdcpp, libg++, ...)
* New info browser version 2.14
* parse.y was patched:
A parse error will not abort the parser, if octave is forced to be
interactive (-i).
* lex.l was patched:
SIGINT will not crash Octave, if octave is forced to be interactive (-i).
* info will not kill the octave process, if the terminal type is emacs.
It displays a message, so that emacs can start its own info browser.
* The routines read and write in liboctave/dMatrix.cc are patched:
The streams are set to binary mode before writing/reading and set back to
text mode after.
* Emacs-Shell-Mode for Octave including Info, temporary files, script files.
* New function in Octave: add_to_command_number.
Octave 1.1.1 Build 04:
**********************
* image uses now ib.exe (the Multimedia Viewer coming with Warp) to view
the images. This works also when GNUPLOT is running.
* GNUPLOT is now started as PM program in a different session. Now one can
use Ctrl-C to interrupt Octave, when Gnuplot is running.
* Internal Changes in Iostream:
New function _io_popen (used in the member functions of the class procbuf):
The command is now executed direct, without the command processor cmd.exe
(or ...). The way the program is started (PM, Session, ...) is specified
in the third argument of _io_popen. If this fails, the command is
executed via the command processor.
* A new signal handler (SIGINT) for parse_and_execute: The script files
are closed, if the execution is interrupted by the user. The signal works
like an error!
Octave 1.1.1 Build 03:
**********************
* The signal handler is fixed: Ctrl-C works now more than only ones.
Octave 1.1.1 Build 02:
**********************
* The function script polyreduce.m is fixed. So the functions deconv and
residue are working.
* The Fortran and C routines are now in DLLs. This reduces the size of the
executable and octave needs not so much memory at start time.
* The libraries of info, kpathsea and readline are linked using DLLs. The
stand-alone info browser (info.exe) uses also that DLLs.
* The heap is not longer fixed to 32 MB (by emx gcc). The user can select the
best heap size for his problems and his system.
* The iostream library is fixed: Octave reads binary files (load -b or
load -m).
* A few changes in the source code.
* New Version of Octave (1.1.1).
* Octave no longer hangs the WPS, if it is closed by typing quit, while
GNUPLOTPM is still running.
*******************************************************************************
** Changes since the Version 1.0 of Octave for OS/2 **
*******************************************************************************
* Octave now uses ';' as separator in paths.
* Drives are now supported in paths. So you can start octave from a
different drive and octave will find the script files.
* Drives are also supported in 'cd' and 'pwd'.
* Control-C works more than once.
* By defining USE_EXTERNAL_TEMPLATES and using emxbind -s I made the file
octave.exe much smaller.
* The temporary files created by the commands edit_history and run_history
are deleted.
* The info files are changed for FAT.
* I create a second set of script files, patched for FAT.
* Octave uses the file in the environment variable OCTAVE_INITFILE instead
of .octaverc, if the variable is set.
* New Version of Octave (Version 1.1.0)
* New Compiler (emx-gcc 0.9A) and libraries (iostream 0.66)
* I add the extproc-statement.
* Octave executes now a interactive script from a file in the command line.
* Images can be viewed using ghostscript.
* Octave uses now GNUPLOT 3.5. |
hobbes.nmsu.edu/download/pub/os2/apps/math/octave/octa21fb.zip | ||
Octave v. 2.1.23 (Source Code, 18/1/2000, Klaus Gebhardt) | Readme/What's new |
Octave -- a high-level language for numerical computations.
**************************************************************************
** P L E A S E N O T E **
**************************************************************************
** Because i no longer work for the Technical University of **
** Darmstadt, my email address has changed: **
** **
** 100114.1371@compuserve.com **
** gebhardt@wotan.ikp.physik.tu-darmstadt.de **
** **
** The CompuServe address is the more reliable address! **
** **
** Sorry for the inconvenience, **
** Klaus Gebhardt **
**************************************************************************
**************************************************************************
** P L E A S E N O T E **
**************************************************************************
** This is a development version of Octave. Development releases **
** are provided for people who want to help test, debug, and improve **
** Octave. **
** **
** If you want a stable, well-tested version of Octave, you should be **
** using one of the stable releases (when this development release **
** was made, the latest stable version was 2.0.13). **
**************************************************************************
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.
Used Compiler and Libraries
---------------------------
Octave for OS/2 is compiled using EMX-GCC 0.9C (with EMXFIX04) and
libg++ 2.7.2.
The fortran routines are translated to C using f2c.
Binary Distribution
-------------------
Why a binary distribution?
1. There are only minor changes made in the source files of octave. The main
job was patching stdcpp, info, kpathsea and readline.
2. octave is big (40 MB with the source, object files and libraries) and it
takes time to compile the program. (ca. 50 minutes on my
133 MHz Pentium-Overdrive system = ca. 8 hours on a 486DX-33).
Compiling Octave
----------------
If you want to compile Octave yourself you must download the patched sources and
unpack them. Modify the paths in the file makeversions depending on your
system setup an run 'make octave'.
Files
-----
The files BUGS, CHANGELO, CHANGELO.1, COPYING, NEWS, NEWS.1, PROJECTS, README,
ROADMAP, SENDING.PAT and THANKS are part of the octave 2.1.23 source code.
In the zip file scripts.zip are the scripts coming with octave 2.1.23.
The installation script will unzip the correct set of script files for
your file system.
The files COPYING.EMX, emx.dll, emxlibcs.dll and termcap.dat are part of the
emx 0.9c package (with EMXFIX04 applied, see COPYING.EMX).
octave.exe and octave.ico are the executable and the icon of the main program.
The file octave.exe must no longer be build by the install program!
info.exe is the standalone info browser coming with EMX. It was recompiled
so that info.exe and octave.exe uses the same DLL (gnuinfo.dll). And it is
patched so that info.exe accepts the '--index-search' option.
gnuview.exe is a replacement for info.exe: It accepts the same command
line option, but it starts OS/2s view.exe.
mkfifo.exe is the utility for creating, removing and listing named pipes. It
starts the program nmpserv.exe, if neccessary.
The program oct-view.exe is used for starting the image viewer.
README.OS2 is the file you are reading.
In the directory 'lisp' you find the elisp files (and the compiled elisp files)
you need to run Octave in an Emacs subshell and the files for editing script
files or temporary files of octave using the Emacs editor.
In the directory 'doc' you can find the documentation in dvi, postscript,
and also the info files and the INF files.
In the directory 'dll' you can find the Dynamic Link Libraries of octave and
emx, and the file termcap.dat is in the directory etc.
All files you need for using the dynamic loading in Octave for loading your
own C++ routines into Octave are in 'dlfcn' and its subdirectories.
Other Files of Interest
-----------------------
octa21Fb.zip or octave-2.1.23-b??.zip:
The binary distribution of Octave-2.1.23.
octa21Fp.zip or octave-2.1.23-p??.zip:
This archive contains always the update to the newest build.
octa21Fs.zip or octave-2.1.23-s??.zip:
The patched source code for octave (including info, kpathsea,
iostream, readline and pnm).
You need also the following packages. They are available on ftp.cdrom.com,
hobbes.nmsu.edu and wotan.ikp.physik.tu-darmstadt.de. less and gnufutil
should be also on ftp.uni-stuttgart.de and ftp.leo.org, and the gnuplot
beta on cmpc1.phys.soton.ac.uk.
less252-2.zip: The less pager ported by Kai Uwe Rommel.
(I know there is a newer version, but i forgot the number :-))
gp315os2b.zip: GNUPLOT 3.6 (beta 315)
gnufutil.zip : The GNU file utilities.
pmvu93.zip : PM View 0.93.
Updating to the most recent build level
---------------------------------------
**************************************************************************
** BEFORE APPLYING A PATCH MAKE SURE THAT THE PATCH IS FOR YOUR **
** INSTALLED OCTAVE VERSION (CHECK THE TIMESTAMPS OF THE FILES). **
**************************************************************************
** DO NOT INSTALL AN OLDER PATCH OVER A NEWER VERSION OF OCTAVE! **
**************************************************************************
1. First you must install Octave. See Installation below.
2. Unzip the patches into the directory you have Octave/2 installed in.
3. Change into that directory and type 'updt-octave'
4. Type 'inst-octave /clean'
Installation
------------
Change to the directory of octave and run install (REXX must be installed!):
1. Type 'inst-octave /install':
The script make changes in the config.sys, .octaverc, .emacs and dir.
It unzips the scriptfiles, removes older emx-dlls, copies the info-files
to the INFO directory and creates an object on the desktop!
For all modified or deleted files it will create backups in the current
directory.
**************************************************************************
** BEFORE REBOOTING CONFIRM THE CHANGES THIS SCRIPT WILL HAVE DONE **
** IN YOUR CONFIG.SYS! **
**************************************************************************
** IF THERE IS SOMETHING WRONG PLEASE SEND ME A NOTE! **
**************************************************************************
2. If necessary the script will ask you to reboot. Do so.
3. To save disk space you can use 'inst-octave /clean'. All the files you
don't need for running octave are deleted. All backup files are also
removed.
The setup script modify the following parts of the config.sys, if necessary:
PATH=...;h:\apps\science\octave;
LIBPATH=...;h:\apps\science\octave\dll;
The directory you have Octave installed in:
SET OCTAVE_HOME=c:/octave
Terminal type and a pointer to the TERMCAP.DAT file:
SET TERM=ansi
SET TERMCAP=h:/apps/science/octave/etc/termcap.dat
Your home directory (place of your initialization files)
SET HOME=h:/.
The name of the initialization file:
SET OCTAVE_INITFILE=octave.ini
The directory for your info files:
SET INFOPATH=.;h:/apps/science/octave/doc
The directory of Gnuplot:
SET GNUPLOT=h:/apps/science/gnuplot
Running Octave
--------------
When you start octave (without -f, --norc or --ignore-init-file), octave will
execute the following files:
1. scripts\startup\octaverc:
Octave will use the editor 'emacsclient' and the pager 'less'. The info
files are located using the environment variable INFOPATH and the
gnuplot_binary using the environment variable GNUPLOT.
2. The file, which name is given by the environment variable OCTAVE_INITFILE,
or .octaverc, if there is no OCTAVE_INITFILE. Both are searched in your
HOME directory.
You can use octave as an external processor in an batch file, if the first
line in the batch file is
extproc octave -q
or
EXTPROC octave -q.
This is the same as using octave -q file.cmd.
GNUPLOT
-------
Octave uses GNUPLOT to display plots. I have tested octave with GNUPLOT 3.6
(beta 315). The system-wide startup file octaverc in the directory
scripts/startup reads the environment variable GNUPLOT and appends
"/gnuplot.exe". This should be the path and name of GNUPLOT. So if the
executable (gnuplot.exe) is in the directory h:\apps\science\gnuplot
add the following line to your config.sys:
SET GNUPLOT=h:/apps/science/gnuplot
You must use the beta of GNUPLOT because it supports multiple plots.
PAGER
-----
If you want to use the less pager, you need the file less252-2.zip or newer.
This less port does not use the termcap library, so it is unable to work with
ansi-color-2, ansi-color-3,...
If you want to use ansi-color-3, you must recompile less after deleting
termcap.c and adding the termcap-library in the makefile, or you must edit
the file termcap.dat: Replace every tc=ansi in the termcap.dat by the lines
following ansi.
EMACS
-----
You can use emacs to edit the script files of octave. To do so add the lines
(setq load-path (append '("h:/apps/science/octave/lisp") load-path))
(autoload 'octave-mode "octave-mode" "Enter Octave mode." t)
(setq auto-mode-alist (cons '("\\.[Mm]$" . octave-mode) auto-mode-alist))
(defun my-octave-mode-hook ()
(setq fill-column 76)
(auto-fill-mode 1))
(setq octave-mode-hook 'my-octave-mode-hook)
(setq octave-prog-filename "h:/apps/science/octave/octave.exe")
to your .emacs.
If you run emacs in server mode, octave can use the emacsclient for editing
temporary files. Add the following lines to .emacs:
(autoload 'octave-tmp-mode "octave-tmp-mode" "Enter Octave's tmp mode." t)
(setq auto-mode-alist
(cons '("[Oo][Cc][Tt]-....\\.[Tt][Mm][Pp]$" . tmp-mode)
auto-mode-alist))
The tmp mode is the normal text mode with one exception: If you finished
editing by pressing C-x # the buffer is killed. So octave can delete the file.
If you want to run Octave in a special shell mode under Emacs you must also
add the following line to .emacs:
(require 'octave)
There is also another octave shell mode, which is normally part of
Octave. The file is called octave.el. I do not use it, because it created
a lot of problems on my system AND it won't work correctly.
For example your .emacs file should look like this:
(setq load-path (append '("h:/apps/science/octave/lisp") load-path))
(require 'octave)
(autoload 'octave-mode "octave-mode" "Enter Octave mode." t)
(setq auto-mode-alist (cons '("\\.[Mm]$" . octave-mode) auto-mode-alist))
(defun my-octave-mode-hook ()
(setq fill-column 76)
(auto-fill-mode 1))
(setq octave-mode-hook 'my-octave-mode-hook)
(setq octave-prog-filename "h:/apps/science/octave/octave.exe")
(autoload 'octave-tmp-mode "octave-tmp-mode" "Enter Octave's tmp mode." t)
(setq auto-mode-alist
(cons '("[Oo][Cc][Tt]-....\\.[Tt][Mm][Pp]$" . octave-tmp-mode)
auto-mode-alist))
Dynamic Loading of C++ Functions
--------------------------------
This port now supports the dynamic loading. Use the script MAKE-OCTFILE to
compile your scripts EVERY time you installed a new version of Octave! The
script MAKE-OCTFILE is created by INST-OCTAVE.
For example:
cd dlfcn\examples
make-octfile hello.cc
and add the path '.../dlfcn/examples' to Octave's LOADPATH; start Octave and
type 'hello (1,2,3)'.
You can find examples in the directories '.../dlfcn/examples' and
'scripts/image/codecs'.
Images
------
Octave for OS/2 uses the excellent PM View. If you want to use a different
viewer or if your PM View is installed in directory other then
h:\apps\graphics\pmview, set the environment variable OCTAVE_IMAGE_VIEWER.
You can use the environment variable OCTAVE_IMAGE_VIEWER_OPT for specifying
command line options: For example:
SET OCTAVE_IMAGE_VIEWER=c:\pmview\pmview.exe
SET OCTAVE_IMAGE_VIEWER_OPT=/WPos(,,,,ForAct)
For loading and saving images Octave uses now the DLFCN feature. Octave can
read and write BMP, PNM, IMG formats and write Postscript.
MKFIFO
------
The mkfifo command is now supported! You can use Octave's mkfifo command
to create a named pipe for communication with another program (local or
in a LAN). There is also a utility called mkfifo, which can be used for
creating, removing, listing named pipes, you have created with mkfifo.
The names of the pipes must start with '\PIPE' or with '/PIPE'. If you want
access to a pipe on another computer in your LAN you must prepend
'\\HOSTNAME', where HOSTNAME stands for the name of the computer.
For example:
1) Start octave.
2) Open an OS/2 window.
3) Run mkfifo \PIPE\TEST
4) Type 'echo abcdef >\PIPE\TEST' in the OS/2 window
5) In Octave execute the following commands:
fid = fopen ("/PIPE/TEST", "r");
fgets (fid)
fclose (fid);
6) Run mkfifo -d \PIPE\TEST in the OS/2 window
To speed up the execution of the first mkfifo command you can add the
following in your STARTUP.CMD:
detach [DRIVE:]\[PATH]\nmpserv --noexit
Known Limitations, Modifications and Bugs
-----------------------------------------
1) fork is not supported, use spawn instead. Compare the script file popen2.m
with the original version (popen2.org).
2) dup2 has been renamed to _dup2
3) Because of an OS/2 limitation dynamic loading of C++ functions will only
work, if the length of the function name is less than 8 characters.
Comments, Bugs, Problems, Ideas, ...
------------------------------------
If you have any problem installing or using this port, let me know!
If have any idea to make octave for OS/2 a better program, send me a mail.
Also any comments are welcome.
And thanks for all your nice mails i received, and thanks to all of you
helping me to remove the bugs.
My email addresses are:
INTERNET: 100114.1371 @ compuserve . com
gebhardt @ wotan . ikp . physik . tu - darmstadt . de
CompuServe: 100114,1371
Klaus Gebhardt [TEAM OS/2]
Competence Center Architecture and Technology
Deutsche Boerse Systems
*******************************************************************************
** Changes since the Version 2.09 of Octave for OS/2 **
*******************************************************************************
Octave 2.1.23 Build 01:
***********************
* New version:
***************************************************************************
** Octave 2.1.14 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in the next version. **
***************************************************************************
Octave 2.1.14 Build 02:
***********************
* atanh(1) and acoth(1) will no longer crash Octave (liboctave/lo-mappers.cc).
* clc clears the whole screen (liboctave/cmd-edit.cc).
* help for all the mapper functions (erf, erfc, gamma, ...) has been fixed.
Octave 2.1.14 Build 01:
***********************
* New version:
***************************************************************************
** Octave 2.1.14 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in the next version. **
***************************************************************************
Octave 2.0.14 Build 02:
***********************
* atanh(1) and acoth(1) will no longer crash Octave.
Octave 2.0.14 Build 01:
***********************
* New Version 2.0.14
* diary bug fixed: User input when running a script will now be written into
the diary file.
Octave 2.0.13 Build 02:
***********************
* oregon.cc renamed.
* Patch included:
src/file-io.cc and liboctave/data-conv.cc: uint16 and uint32 types supported
in fread.
* Complex erf added to examples for dlfcn.
* Patch included:
data.cc: is_complex added.
* GNU Info updated to version 2.18.
* kpathsearch version 3.2 used.
* Help in image.m is now correct.
Octave 2.0.13 Build 01:
***********************
* New Version 2.0.13
* Plot functions patched.
* Patch included:
DASSL.cc (DASSL::do_integrate): If an exception occurs in the
call to ddassl, set integration_error to 1 before calling the
error handler and returning.
* Patch included:
Array2-idx.h (assign): Allow A([],[]) = scalar and, if
do_fortran_indexing is set, A([]) = scalar.
Array-idx.h (assign): Allow A([]) = scalar.
* Patch included:
time.cc (extract_tm): Truncate field values instead of rounding.
(Fgmtime, Flocaltime): Likewise, for timeval.
Octave 2.0.11 Build 02:
***********************
* New Version 2.0.11
* Patch included:
symtab.cc (symbol_record::variable_value): Avoid dereferencing
NULL pointer.
* Patch included:
lo-spec-fun: the order of the arguments in the gammai and gammainc.
* Patch included:
error.cc (verror): Fix thinko in attempt to skip `error: ' tag
when buffering error messages.
pt-cmd.cc (tree_try_catch::eval): Reset buffer_error_messages
here if just discarding unwind_protect frame.
* Typos in mplot.m fixed.
* __pltopt__ functionality extended:
Now, for plot (x, y, fmt) in the cases where either x or y (or both)
are matrices, fmt can also be a string array. The rows of the string
array correspond to the lines on the plot:
plot/__pltopt1.m__: New file.
plot/__pltopt.m__: Handle opt as a string array by calling
__pltopt1__ multiple times and returning a string array with rows
corresponding to the rows of opt.
plot/__plt2ss__.m, plot/__plt2vv__.m, plot/__plt2vm__.m,
plot/__plt2mv__.m, plot/__plt2mm__.m: Handle fmt as a string
array.
Octave 2.0.10 Build 01:
***********************
* New Version 2.0.10
* Default install path changed (h:/apps/science/octave).
Octave 2.09.98 Build 01:
************************
* New Version 2.0.9.98 (Beta)
Octave 2.09.97 Build 01:
************************
* New Version 2.0.9.97 (Beta)
*******************************************************************************
** Changes since the Version 1.9x of Octave for OS/2 **
*******************************************************************************
Octave 2.09 Build 04:
*********************
* makefile.os2 modified: This corrects the missing xmalloc.lib problem, when
using make-octfile.
* lgamma(-2) no longer aborts Octave.
* Minor changes in the source code.
* Patch for filter.cc included.
* sighandlers.cc (octave_child_list::do_remove) and
toplev.cc (run_command_and_return_output) modified:
[a,b] = system ("dir") returns the correct return value in b.
* Patch included:
* pt-mat.h (tree_matrix_row::preserve_expr): New private data.
(tree_matrix_row::~tree_matrix_row): Delete list contents.
(tree_matrix::~tree_matrix): Delete list contents.
* pt-mat.cc (tree_matrix_row::to_return_list): Set preserve_expr
to true if successful.
* get_boot_drive in inst-octave.cmd and updt-octave.cmd patched.
* Patch included:
* input.cc (get_user_input): Return an empty string if the user
just types RET.
Octave 2.09 Build 03:
*********************
* mkfifo is now supported.
* inst-octave.cmd creates WPS objects for the documentation.
* The documentation is now also available in OS/2's INF format. You can
view them using gnuview as Octave's external info viewer.
* Compiler updated (EMXFIX03).
* Bug in logm (wrong result for a complex scalar argument) fixed.
* Minor changes in the sources and makefiles.
* Workaround for the bug in the fortran routine DGELSS added (in CMatrix.cc).
* Patch included:
* idx-vector.cc (IDX_VEC_REP::sort): New function.
* idx-vector.h (idx_vector::sort): Ditto.
* Array2-idx.h (Array2<T>::maybe_delete_elements): Use it before
trying to delete elements specified by the index vectors.
Octave 2.09 Build 02:
*********************
* Bug in cruft4.def fixed, which caused Octave to crash, when trying to
compute eig(A), with a complex matrix A.
Octave 2.09 Build 01:
*********************
* New Version 2.0.9.
Octave 2.08 Build 01:
*********************
* New Version 2.0.8.
* Patch for pt-fvc.cc included.
Octave 2.07 Build 01:
*********************
* New Version 2.0.7.
Octave 2.06 Build 01:
*********************
* New Version 2.0.6.
* All functions working with FILE IDS (file handles) are renamed:
_dup, _dup2, _close, _fdopen, _pipe.
* The function pipe is now returning the octave file streams.
* Minor modifications in the makefiles.
Octave 2.05 Build 04:
*********************
* inst-octave.cmd and updt-octave.cmd patched.
* Patches included:
input.cc (octave_read):
Don't forget to free input buffer if it exists and has zero length.
(gnu_readline):
Free buf if fgets returns 0.
parse.y:
Parse error will not abort Octave, when forced_interactive "-i"
Array2-idx.h (Array2<T>::maybe_delete_elements):
Prevent out-of-bounds indexing of the index array.
Array-idx.h (Array<T>::maybe_delete_elements): Likewise.
idx-vector.cc (IDX_VEC_REP::is_colon_equiv):
Make it work when the vector is not sorted.
Octave 2.05 Build 03:
*********************
* lex.l patched:
help will work with text mode files, even if the help text is not at the
beginning of the file.
* Lisp files modified:
hilit19 will not be loaded, when running emacs in normal text mode.
* parse.y patch included:
Using formal parameters for functions, the names of which are already
being used by builtin functions, will not produce errors. For example:
function y=f(type), y=type; end;
* variables.cc patched: <CR>s are not copied into the help text.
* The full name of the executable can be specified in .emacs.
* inst-octave.cmd and updt-octave.cmd patched.
* lex.l patched: Octave reads script and function files with lines like:
x = x + ...
3;
Octave 2.05 Build 02:
*********************
* New internal system routine (also used in procbuf):
All / in the executable are replaced by \ when using cmd.exe or 4os2.exe
as shell and all \ are replaced by / when using a UNIX shell.
* make-octfile.cmd patched: The dynamic loading of function will
under OS/2 2.xx.
* nextpow2.m patched: nextpow2(1000) returns 10.
* inst-octave.cmd patched: scripts.fat will be renamed to scripts on FAT.
* The files in the subdirectory doc are FAT compatible.
* Octave reads script and function files with lines like:
M = [1 2
3 4]
Octave 2.05 Build 01:
*********************
* New version: Octave 2.0.5
* help will work with text (<CR>>LF>) files.
* No endfunction is needed at the end of a function file.
* Octave uses noncontinous multiple heaps. So the heap size is no longer
fixed to 32 MB.
* Image viewer and GNUPlot can be used at the same time again.
The environment variable OCTAVE_IMAGE_VIEWER is supported again.
* (require 'hilit19) added in lisp files.
* octave-mode.el modified: switch/case/otherwise/endswitch statement included.
Octave 2.02 Build 02:
*********************
* Bug in usleep fixed. plot works again.
* erf(x) and erfc(x) are supported. Bug in erfinv.m is fixed.
* gamma(2000) no longer aborts Octave.
* Bugfixes in the installationsscript. Corrected README.OS2
* Default value of IMAGEPATH now points to ../scripts/image.
* Patch included (oct-stream.cc):
scanf reads correctly when using %f or %e.
Octave 2.02 Build 01:
*********************
* POPEN2.M modified: The script now uses the new function spawn to start
the child process.
* The environment variable OCTAVE_IMAGE_VIEWER is no longer supported. Modify
the script file IMAGE.M, if you want to use another image viewer.
* Function added: child_purge_temp_file. It removes the temporary file
when the specified child process dies (used in IMAGE.M).
* The pipe function returns the file handles and not the Octave's file ids.
Use fdopen to open the handles!
* Functions added: dup, close, fdopen.
* Function added: spawn.
* Octave reads OS/2 BMP (version 1.0) Windows BMP, PNM (P1 - P6) and
Octave's IMG format. It writes OS/2 BMP (version 1.0) Windows BMP,
PNM (P5, P6), Postscript and Octave's IMG format. LOADIMAGE.M and
SAVEIMAGE.M are modified (the original version are in the archive
image.zip).
* New version: Octave 2.0.2
* Bug fixes in dlfcn.lib.
Octave 2.01 Build 01:
*********************
* Dynamik Linking is now supported! See hello.cc and make_int.cc for
example. A small bug in make_int.cc fixed.
* Bug in xor.m fixed.
* Bug in the installation script fixed: The script will not replace the first
"\DLL" in LIBPATH, if Octave is installed for the first time on a system.
* The installation script is renamed to inst-octave.cmd.
* New version 2.0.1.
* All C++ Code is now placed in DLLs.
* GNUPLOT is started as normal VIO, so gshow will work. Also because of other
changes in the code, CTRL-C works even when GNUPLOT is started.
* Minor changes in the sources.
Octave 2.00 Build 01:
*********************
* New version: Octave 2.0.
* Script and function files are loaded correctly even if they contain an
End-of-file character. This character will be interpreted as a newline
character.
* saveimage saves images in bmp, gif and ps files.
*******************************************************************************
** Changes since the Version 1.1.1 of Octave for OS/2 **
*******************************************************************************
Octave 1.94 Build 01:
*********************
* New version 1.94 (pre-2.0). Keep in mind:
***************************************************************************
** Octave 1.94 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in version 2.0 **
***************************************************************************
* New command line flag '-I'. It forces interactive behaviour, but
deactivates the pager, even if Octave is in interactive mode.
* Every signal which will cause a jump to toplevel (Octave prompt), will
be handled differently if a script or function file is executed: It will
be handled as an error.
* A new installation script: This script make changes in the config.sys,
.octaverc, .emacs and dir. It unzips the scriptfiles and creates an object
on the desktop! The info-files will be copied to the correct directory
and older DLLs coming with EMX will be removed, if necessary.
Octave 1.93 Build 02:
*********************
* Script and function files are loaded correctly even if they no text file
(CR/LF).
* The sigchld_handler in sighandlers.cc is patched:
When no child in octave_child_list has created SIGCHLD, waitpid is
executed. This solves problems with displaying images when GNUPLOT is
running, and similar problems.
* Octave's system command now correctly returns the output or the pid,
depending on the number or values of the arguments.
* The image viewer is started in "async" mode.
Octave 1.93 Build 01:
*********************
* New version 1.93 (pre-2.0). Keep in mind:
***************************************************************************
** Octave 1.93 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in version 2.0 **
***************************************************************************
* Changes in octave.el: hilit19 is used for octave-shell-mode.
Octave 1.92 Build 02:
*********************
* get_size () in oct-stream.cc patched:
fread works with a scalar as second argument.
* Function kbhit () in sysdep.cc calls flush_octave_stdout.
* sighandlers.cc and toplev.cc patched:
Ctrl-C and Ctrl-Break will work more than only once again.
Octave 1.92 Build 01:
*********************
* New version 1.92 (pre-2.0). Keep in mind:
***************************************************************************
** Octave 1.92 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in version 2.0 **
***************************************************************************
* Minor bug fixes in octave-info.el.
* Changes in octave-mode.el: hilit19 is used for editing script files.
* New command add to the Emacs-Shell-Mode for Octave: warranty, multiplot,
close multiplot, subwindow.
* Minor changes in the the makefiles for OS/2. These changes do not
modify the binary.
Octave 1.91 Build 01:
*********************
* New version 1.91 (pre-2.0). Keep in mind:
***************************************************************************
** Octave 1.91 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in version 2.0 **
***************************************************************************
Octave 1.90 Build 01:
*********************
* New version 1.90 (pre-2.0). Keep in mind:
***************************************************************************
** Octave 1.90 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in version 2.0 **
***************************************************************************
* New libraries (readline, kpathsea).
* Octave uses again an internal info viewer. This ensures that it runs
correctly under the control of Emacs.
* Signal handler for SIGCHLD gepatcht.
* Octave needs the GNUPLOT 3.6 beta to display multiple plots.
* Since the new compiler supports multiple heaps it is no longer
necessary to fix the heap size during the installation.
* The environment variable specifies the name of the init file octave executes
on startup.
*******************************************************************************
** Changes since the Version 1.1.0 of Octave for OS/2 **
*******************************************************************************
Octave 1.1.1 Build 08:
**********************
* The cursor type will be selected in readline.
* New Compiler (emx-gcc 0.9c) and libraries used.
* The Stacksize has been increased.
* Signal handling is improved: Ctrl-Break always acts in the same way Ctrl-C
does. No signal handler for SIGTERM!
Octave 1.1.1 Build 07:
**********************
* All FPE signals are now explicity masked off. The fixes the bugs when
running Octave on systems with GAMESRVR.DLL.
Octave 1.1.1 Build 06:
**********************
* Pause now works also when running Octave under Emacs.
* The Octave's 'system' (or 'shell_cmd') is fixed. This fixes also the bug in
saveimage.
* xvos2 now uses the image viewer specified in the environment variable
OCTAVE_IMAGE_VIEWER, if set, or ib.exe if not.
Octave 1.1.1 Build 05:
**********************
* New Compiler (emx-gcc 0.9B) and libraries (stdcpp, libg++, ...)
* New info browser version 2.14
* parse.y was patched:
A parse error will not abort the parser, if octave is forced to be
interactive (-i).
* lex.l was patched:
SIGINT will not crash Octave, if octave is forced to be interactive (-i).
* info will not kill the octave process, if the terminal type is emacs.
It displays a message, so that emacs can start its own info browser.
* The routines read and write in liboctave/dMatrix.cc are patched:
The streams are set to binary mode before writing/reading and set back to
text mode after.
* Emacs-Shell-Mode for Octave including Info, temporary files, script files.
* New function in Octave: add_to_command_number.
Octave 1.1.1 Build 04:
**********************
* image uses now ib.exe (the Multimedia Viewer coming with Warp) to view
the images. This works also when GNUPLOT is running.
* GNUPLOT is now started as PM program in a different session. Now one can
use Ctrl-C to interrupt Octave, when Gnuplot is running.
* Internal Changes in Iostream:
New function _io_popen (used in the member functions of the class procbuf):
The command is now executed direct, without the command processor cmd.exe
(or ...). The way the program is started (PM, Session, ...) is specified
in the third argument of _io_popen. If this fails, the command is
executed via the command processor.
* A new signal handler (SIGINT) for parse_and_execute: The script files
are closed, if the execution is interrupted by the user. The signal works
like an error!
Octave 1.1.1 Build 03:
**********************
* The signal handler is fixed: Ctrl-C works now more than only ones.
Octave 1.1.1 Build 02:
**********************
* The function script polyreduce.m is fixed. So the functions deconv and
residue are working.
* The Fortran and C routines are now in DLLs. This reduces the size of the
executable and octave needs not so much memory at start time.
* The libraries of info, kpathsea and readline are linked using DLLs. The
stand-alone info browser (info.exe) uses also that DLLs.
* The heap is not longer fixed to 32 MB (by emx gcc). The user can select the
best heap size for his problems and his system.
* The iostream library is fixed: Octave reads binary files (load -b or
load -m).
* A few changes in the source code.
* New Version of Octave (1.1.1).
* Octave no longer hangs the WPS, if it is closed by typing quit, while
GNUPLOTPM is still running.
*******************************************************************************
** Changes since the Version 1.0 of Octave for OS/2 **
*******************************************************************************
* Octave now uses ';' as separator in paths.
* Drives are now supported in paths. So you can start octave from a
different drive and octave will find the script files.
* Drives are also supported in 'cd' and 'pwd'.
* Control-C works more than once.
* By defining USE_EXTERNAL_TEMPLATES and using emxbind -s I made the file
octave.exe much smaller.
* The temporary files created by the commands edit_history and run_history
are deleted.
* The info files are changed for FAT.
* I create a second set of script files, patched for FAT.
* Octave uses the file in the environment variable OCTAVE_INITFILE instead
of .octaverc, if the variable is set.
* New Version of Octave (Version 1.1.0)
* New Compiler (emx-gcc 0.9A) and libraries (iostream 0.66)
* I add the extproc-statement.
* Octave executes now a interactive script from a file in the command line.
* Images can be viewed using ghostscript.
* Octave uses now GNUPLOT 3.5. |
hobbes.nmsu.edu/download/pub/os2/apps/math/octave/octa21fs.zip | ||
Octave v. 2.0.15 (Source code, 18/1/2000, Klaus Gebhardt) | ||
hobbes.nmsu.edu/download/pub/os2/apps/math/octave/octa20fs.zip | ||
Octave v. 2.1.14 (15/6/1999, Klaus Gebhardt) | Readme/What's new |
Octave -- a high-level language for numerical computations.
**************************************************************************
** P L E A S E N O T E **
**************************************************************************
** Because i no longer work for the Technical University of **
** Darmstadt, my email address has changed: **
** **
** 100114.1371@compuserve.com **
** gebhardt@wotan.ikp.physik.tu-darmstadt.de **
** **
** The CompuServe address is the more reliable address! **
** **
** Sorry for the inconvenience, **
** Klaus Gebhardt **
**************************************************************************
**************************************************************************
** P L E A S E N O T E **
**************************************************************************
** This is a development version of Octave. Development releases **
** are provided for people who want to help test, debug, and improve **
** Octave. **
** **
** If you want a stable, well-tested version of Octave, you should be **
** using one of the stable releases (when this development release **
** was made, the latest stable version was 2.0.13). **
**************************************************************************
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.
Used Compiler and Libraries
---------------------------
Octave for OS/2 is compiled using EMX-GCC 0.9C (with EMXFIX04) and
libg++ 2.7.2.
The fortran routines are translated to C using f2c.
Binary Distribution
-------------------
Why a binary distribution?
1. There are only minor changes made in the source files of octave. The main
job was patching stdcpp, info, kpathsea and readline.
2. octave is big (40 MB with the source, object files and libraries) and it
takes time to compile the program. (ca. 50 minutes on my
133 MHz Pentium-Overdrive system = ca. 8 hours on a 486DX-33).
Compiling Octave
----------------
If you want to compile Octave yourself you must download the patched sources and
unpack them. Modify the paths in the file makeversions depending on your
system setup an run 'make octave'.
Files
-----
The files BUGS, CHANGELO, CHANGELO.1, COPYING, NEWS, NEWS.1, PROJECTS, README,
ROADMAP, SENDING.PAT and THANKS are part of the octave 2.1.14 source code.
In the zip file scripts.zip are the scripts coming with octave 2.1.14.
The installation script will unzip the correct set of script files for
your file system.
The files COPYING.EMX, emx.dll, emxlibcs.dll and termcap.dat are part of the
emx 0.9c package (with EMXFIX04 applied, see COPYING.EMX).
octave.exe and octave.ico are the executable and the icon of the main program.
The file octave.exe must no longer be build by the install program!
info.exe is the standalone info browser coming with EMX. It was recompiled
so that info.exe and octave.exe uses the same DLL (gnuinfo.dll). And it is
patched so that info.exe accepts the '--index-search' option.
gnuview.exe is a replacement for info.exe: It accepts the same command
line option, but it starts OS/2s view.exe.
mkfifo.exe is the utility for creating, removing and listing named pipes. It
starts the program nmpserv.exe, if neccessary.
The program oct-view.exe is used for starting the image viewer.
README.OS2 is the file you are reading.
In the directory 'lisp' you find the elisp files (and the compiled elisp files)
you need to run Octave in an Emacs subshell and the files for editing script
files or temporary files of octave using the Emacs editor.
In the directory 'doc' you can find the documentation in dvi, postscript,
and also the info files and the INF files.
In the directory 'dll' you can find the Dynamic Link Libraries of octave and
emx, and the file termcap.dat is in the directory etc.
All files you need for using the dynamic loading in Octave for loading your
own C++ routines into Octave are in 'dlfcn' and its subdirectories.
Other Files of Interest
-----------------------
octa21Eb.zip or octave-2.1.14-b??.zip:
The binary distribution of Octave-2.1.14.
octa21Ep.zip or octave-2.1.14-p??.zip:
This archive contains always the update to the newest build.
octa21Es.zip or octave-2.1.14-s??.zip:
The patched source code for octave (including info, kpathsea,
iostream, readline and pnm).
You need also the following packages. They are available on ftp.cdrom.com,
hobbes.nmsu.edu and wotan.ikp.physik.tu-darmstadt.de. less and gnufutil
should be also on ftp.uni-stuttgart.de and ftp.leo.org, and the gnuplot
beta on cmpc1.phys.soton.ac.uk.
less252-2.zip: The less pager ported by Kai Uwe Rommel.
(I know there is a newer version, but i forgot the number :-))
gp315os2b.zip: GNUPLOT 3.6 (beta 315)
gnufutil.zip : The GNU file utilities.
pmvu93.zip : PM View 0.93.
Updating to the most recent build level
---------------------------------------
**************************************************************************
** BEFORE APPLYING A PATCH MAKE SURE THAT THE PATCH IS FOR YOUR **
** INSTALLED OCTAVE VERSION (CHECK THE TIMESTAMPS OF THE FILES). **
**************************************************************************
** DO NOT INSTALL AN OLDER PATCH OVER A NEWER VERSION OF OCTAVE! **
**************************************************************************
1. First you must install Octave. See Installation below.
2. Unzip the patches into the directory you have Octave/2 installed in.
3. Change into that directory and type 'updt-octave'
4. Type 'inst-octave /clean'
Installation
------------
Change to the directory of octave and run install (REXX must be installed!):
1. Type 'inst-octave /install':
The script make changes in the config.sys, .octaverc, .emacs and dir.
It unzips the scriptfiles, removes older emx-dlls, copies the info-files
to the INFO directory and creates an object on the desktop!
For all modified or deleted files it will create backups in the current
directory.
**************************************************************************
** BEFORE REBOOTING CONFIRM THE CHANGES THIS SCRIPT WILL HAVE DONE **
** IN YOUR CONFIG.SYS! **
**************************************************************************
** IF THERE IS SOMETHING WRONG PLEASE SEND ME A NOTE! **
**************************************************************************
2. If necessary the script will ask you to reboot. Do so.
3. To save disk space you can use 'inst-octave /clean'. All the files you
don't need for running octave are deleted. All backup files are also
removed.
The setup script modify the following parts of the config.sys, if necessary:
PATH=...;h:\apps\science\octave;
LIBPATH=...;h:\apps\science\octave\dll;
The directory you have Octave installed in:
SET OCTAVE_HOME=c:/octave
Terminal type and a pointer to the TERMCAP.DAT file:
SET TERM=ansi
SET TERMCAP=h:/apps/science/octave/etc/termcap.dat
Your home directory (place of your initialization files)
SET HOME=h:/.
The name of the initialization file:
SET OCTAVE_INITFILE=octave.ini
The directory for your info files:
SET INFOPATH=.;h:/apps/science/octave/doc
The directory of Gnuplot:
SET GNUPLOT=h:/apps/science/gnuplot
Running Octave
--------------
When you start octave (without -f, --norc or --ignore-init-file), octave will
execute the following files:
1. scripts\startup\octaverc:
Octave will use the editor 'emacsclient' and the pager 'less'. The info
files are located using the environment variable INFOPATH and the
gnuplot_binary using the environment variable GNUPLOT.
2. The file, which name is given by the environment variable OCTAVE_INITFILE,
or .octaverc, if there is no OCTAVE_INITFILE. Both are searched in your
HOME directory.
You can use octave as an external processor in an batch file, if the first
line in the batch file is
extproc octave -q
or
EXTPROC octave -q.
This is the same as using octave -q file.cmd.
GNUPLOT
-------
Octave uses GNUPLOT to display plots. I have tested octave with GNUPLOT 3.6
(beta 315). The system-wide startup file octaverc in the directory
scripts/startup reads the environment variable GNUPLOT and appends
"/gnuplot.exe". This should be the path and name of GNUPLOT. So if the
executable (gnuplot.exe) is in the directory h:\apps\science\gnuplot
add the following line to your config.sys:
SET GNUPLOT=h:/apps/science/gnuplot
You must use the beta of GNUPLOT because it supports multiple plots.
PAGER
-----
If you want to use the less pager, you need the file less252-2.zip or newer.
This less port does not use the termcap library, so it is unable to work with
ansi-color-2, ansi-color-3,...
If you want to use ansi-color-3, you must recompile less after deleting
termcap.c and adding the termcap-library in the makefile, or you must edit
the file termcap.dat: Replace every tc=ansi in the termcap.dat by the lines
following ansi.
EMACS
-----
You can use emacs to edit the script files of octave. To do so add the lines
(setq load-path (append '("h:/apps/science/octave/lisp") load-path))
(autoload 'octave-mode "octave-mode" "Enter Octave mode." t)
(setq auto-mode-alist (cons '("\\.[Mm]$" . octave-mode) auto-mode-alist))
(defun my-octave-mode-hook ()
(setq fill-column 76)
(auto-fill-mode 1))
(setq octave-mode-hook 'my-octave-mode-hook)
(setq octave-prog-filename "h:/apps/science/octave/octave.exe")
to your .emacs.
If you run emacs in server mode, octave can use the emacsclient for editing
temporary files. Add the following lines to .emacs:
(autoload 'octave-tmp-mode "octave-tmp-mode" "Enter Octave's tmp mode." t)
(setq auto-mode-alist
(cons '("[Oo][Cc][Tt]-....\\.[Tt][Mm][Pp]$" . tmp-mode)
auto-mode-alist))
The tmp mode is the normal text mode with one exception: If you finished
editing by pressing C-x # the buffer is killed. So octave can delete the file.
If you want to run Octave in a special shell mode under Emacs you must also
add the following line to .emacs:
(require 'octave)
There is also another octave shell mode, which is normally part of
Octave. The file is called octave.el. I do not use it, because it created
a lot of problems on my system AND it won't work correctly.
For example your .emacs file should look like this:
(setq load-path (append '("h:/apps/science/octave/lisp") load-path))
(require 'octave)
(autoload 'octave-mode "octave-mode" "Enter Octave mode." t)
(setq auto-mode-alist (cons '("\\.[Mm]$" . octave-mode) auto-mode-alist))
(defun my-octave-mode-hook ()
(setq fill-column 76)
(auto-fill-mode 1))
(setq octave-mode-hook 'my-octave-mode-hook)
(setq octave-prog-filename "h:/apps/science/octave/octave.exe")
(autoload 'octave-tmp-mode "octave-tmp-mode" "Enter Octave's tmp mode." t)
(setq auto-mode-alist
(cons '("[Oo][Cc][Tt]-....\\.[Tt][Mm][Pp]$" . octave-tmp-mode)
auto-mode-alist))
Dynamic Loading of C++ Functions
--------------------------------
This port now supports the dynamic loading. Use the script MAKE-OCTFILE to
compile your scripts EVERY time you installed a new version of Octave! The
script MAKE-OCTFILE is created by INST-OCTAVE.
For example:
cd dlfcn\examples
make-octfile hello.cc
and add the path '.../dlfcn/examples' to Octave's LOADPATH; start Octave and
type 'hello (1,2,3)'.
You can find examples in the directories '.../dlfcn/examples' and
'scripts/image/codecs'.
Images
------
Octave for OS/2 uses the excellent PM View. If you want to use a different
viewer or if your PM View is installed in directory other then
h:\apps\graphics\pmview, set the environment variable OCTAVE_IMAGE_VIEWER.
You can use the environment variable OCTAVE_IMAGE_VIEWER_OPT for specifying
command line options: For example:
SET OCTAVE_IMAGE_VIEWER=c:\pmview\pmview.exe
SET OCTAVE_IMAGE_VIEWER_OPT=/WPos(,,,,ForAct)
For loading and saving images Octave uses now the DLFCN feature. Octave can
read and write BMP, PNM, IMG formats and write Postscript.
MKFIFO
------
The mkfifo command is now supported! You can use Octave's mkfifo command
to create a named pipe for communication with another program (local or
in a LAN). There is also a utility called mkfifo, which can be used for
creating, removing, listing named pipes, you have created with mkfifo.
The names of the pipes must start with '\PIPE' or with '/PIPE'. If you want
access to a pipe on another computer in your LAN you must prepend
'\\HOSTNAME', where HOSTNAME stands for the name of the computer.
For example:
1) Start octave.
2) Open an OS/2 window.
3) Run mkfifo \PIPE\TEST
4) Type 'echo abcdef >\PIPE\TEST' in the OS/2 window
5) In Octave execute the following commands:
fid = fopen ("/PIPE/TEST", "r");
fgets (fid)
fclose (fid);
6) Run mkfifo -d \PIPE\TEST in the OS/2 window
To speed up the execution of the first mkfifo command you can add the
following in your STARTUP.CMD:
detach [DRIVE:]\[PATH]\nmpserv --noexit
Known Limitations, Modifications and Bugs
-----------------------------------------
1) fork is not supported, use spawn instead. Compare the script file popen2.m
with the original version (popen2.org).
2) dup2 has been renamed to _dup2
3) Because of an OS/2 limitation dynamic loading of C++ functions will only
work, if the length of the function name is less than 8 characters.
Comments, Bugs, Problems, Ideas, ...
------------------------------------
If you have any problem installing or using this port, let me know!
If have any idea to make octave for OS/2 a better program, send me a mail.
Also any comments are welcome.
And thanks for all your nice mails i received, and thanks to all of you
helping me to remove the bugs.
My email addresses are:
INTERNET: 100114.1371 @ compuserve . com
gebhardt @ wotan . ikp . physik . tu - darmstadt . de
CompuServe: 100114,1371
Klaus Gebhardt [TEAM OS/2]
Competence Center Architecture and Technology
Deutsche Boerse Systems
*******************************************************************************
** Changes since the Version 2.09 of Octave for OS/2 **
*******************************************************************************
Octave 2.1.14 Build 01:
***********************
* New version:
***************************************************************************
** Octave 2.1.14 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in the next version. **
***************************************************************************
Octave 2.0.14 Build 01:
***********************
* New Version 2.0.14
* diary bug fixed: User input when running a script will now be written into
the diary file.
Octave 2.0.13 Build 02:
***********************
* oregon.cc renamed.
* Patch included:
src/file-io.cc and liboctave/data-conv.cc: uint16 and uint32 types supported
in fread.
* Complex erf added to examples for dlfcn.
* Patch included:
data.cc: is_complex added.
* GNU Info updated to version 2.18.
* kpathsearch version 3.2 used.
* Help in image.m is now correct.
Octave 2.0.13 Build 01:
***********************
* New Version 2.0.13
* Plot functions patched.
* Patch included:
DASSL.cc (DASSL::do_integrate): If an exception occurs in the
call to ddassl, set integration_error to 1 before calling the
error handler and returning.
* Patch included:
Array2-idx.h (assign): Allow A([],[]) = scalar and, if
do_fortran_indexing is set, A([]) = scalar.
Array-idx.h (assign): Allow A([]) = scalar.
* Patch included:
time.cc (extract_tm): Truncate field values instead of rounding.
(Fgmtime, Flocaltime): Likewise, for timeval.
Octave 2.0.11 Build 02:
***********************
* New Version 2.0.11
* Patch included:
symtab.cc (symbol_record::variable_value): Avoid dereferencing
NULL pointer.
* Patch included:
lo-spec-fun: the order of the arguments in the gammai and gammainc.
* Patch included:
error.cc (verror): Fix thinko in attempt to skip `error: ' tag
when buffering error messages.
pt-cmd.cc (tree_try_catch::eval): Reset buffer_error_messages
here if just discarding unwind_protect frame.
* Typos in mplot.m fixed.
* __pltopt__ functionality extended:
Now, for plot (x, y, fmt) in the cases where either x or y (or both)
are matrices, fmt can also be a string array. The rows of the string
array correspond to the lines on the plot:
plot/__pltopt1.m__: New file.
plot/__pltopt.m__: Handle opt as a string array by calling
__pltopt1__ multiple times and returning a string array with rows
corresponding to the rows of opt.
plot/__plt2ss__.m, plot/__plt2vv__.m, plot/__plt2vm__.m,
plot/__plt2mv__.m, plot/__plt2mm__.m: Handle fmt as a string
array.
Octave 2.0.10 Build 01:
***********************
* New Version 2.0.10
* Default install path changed (h:/apps/science/octave).
Octave 2.09.98 Build 01:
************************
* New Version 2.0.9.98 (Beta)
Octave 2.09.97 Build 01:
************************
* New Version 2.0.9.97 (Beta)
*******************************************************************************
** Changes since the Version 1.9x of Octave for OS/2 **
*******************************************************************************
Octave 2.09 Build 04:
*********************
* makefile.os2 modified: This corrects the missing xmalloc.lib problem, when
using make-octfile.
* lgamma(-2) no longer aborts Octave.
* Minor changes in the source code.
* Patch for filter.cc included.
* sighandlers.cc (octave_child_list::do_remove) and
toplev.cc (run_command_and_return_output) modified:
[a,b] = system ("dir") returns the correct return value in b.
* Patch included:
* pt-mat.h (tree_matrix_row::preserve_expr): New private data.
(tree_matrix_row::~tree_matrix_row): Delete list contents.
(tree_matrix::~tree_matrix): Delete list contents.
* pt-mat.cc (tree_matrix_row::to_return_list): Set preserve_expr
to true if successful.
* get_boot_drive in inst-octave.cmd and updt-octave.cmd patched.
* Patch included:
* input.cc (get_user_input): Return an empty string if the user
just types RET.
Octave 2.09 Build 03:
*********************
* mkfifo is now supported.
* inst-octave.cmd creates WPS objects for the documentation.
* The documentation is now also available in OS/2's INF format. You can
view them using gnuview as Octave's external info viewer.
* Compiler updated (EMXFIX03).
* Bug in logm (wrong result for a complex scalar argument) fixed.
* Minor changes in the sources and makefiles.
* Workaround for the bug in the fortran routine DGELSS added (in CMatrix.cc).
* Patch included:
* idx-vector.cc (IDX_VEC_REP::sort): New function.
* idx-vector.h (idx_vector::sort): Ditto.
* Array2-idx.h (Array2<T>::maybe_delete_elements): Use it before
trying to delete elements specified by the index vectors.
Octave 2.09 Build 02:
*********************
* Bug in cruft4.def fixed, which caused Octave to crash, when trying to
compute eig(A), with a complex matrix A.
Octave 2.09 Build 01:
*********************
* New Version 2.0.9.
Octave 2.08 Build 01:
*********************
* New Version 2.0.8.
* Patch for pt-fvc.cc included.
Octave 2.07 Build 01:
*********************
* New Version 2.0.7.
Octave 2.06 Build 01:
*********************
* New Version 2.0.6.
* All functions working with FILE IDS (file handles) are renamed:
_dup, _dup2, _close, _fdopen, _pipe.
* The function pipe is now returning the octave file streams.
* Minor modifications in the makefiles.
Octave 2.05 Build 04:
*********************
* inst-octave.cmd and updt-octave.cmd patched.
* Patches included:
input.cc (octave_read):
Don't forget to free input buffer if it exists and has zero length.
(gnu_readline):
Free buf if fgets returns 0.
parse.y:
Parse error will not abort Octave, when forced_interactive "-i"
Array2-idx.h (Array2<T>::maybe_delete_elements):
Prevent out-of-bounds indexing of the index array.
Array-idx.h (Array<T>::maybe_delete_elements): Likewise.
idx-vector.cc (IDX_VEC_REP::is_colon_equiv):
Make it work when the vector is not sorted.
Octave 2.05 Build 03:
*********************
* lex.l patched:
help will work with text mode files, even if the help text is not at the
beginning of the file.
* Lisp files modified:
hilit19 will not be loaded, when running emacs in normal text mode.
* parse.y patch included:
Using formal parameters for functions, the names of which are already
being used by builtin functions, will not produce errors. For example:
function y=f(type), y=type; end;
* variables.cc patched: <CR>s are not copied into the help text.
* The full name of the executable can be specified in .emacs.
* inst-octave.cmd and updt-octave.cmd patched.
* lex.l patched: Octave reads script and function files with lines like:
x = x + ...
3;
Octave 2.05 Build 02:
*********************
* New internal system routine (also used in procbuf):
All / in the executable are replaced by \ when using cmd.exe or 4os2.exe
as shell and all \ are replaced by / when using a UNIX shell.
* make-octfile.cmd patched: The dynamic loading of function will
under OS/2 2.xx.
* nextpow2.m patched: nextpow2(1000) returns 10.
* inst-octave.cmd patched: scripts.fat will be renamed to scripts on FAT.
* The files in the subdirectory doc are FAT compatible.
* Octave reads script and function files with lines like:
M = [1 2
3 4]
Octave 2.05 Build 01:
*********************
* New version: Octave 2.0.5
* help will work with text (<CR>>LF>) files.
* No endfunction is needed at the end of a function file.
* Octave uses noncontinous multiple heaps. So the heap size is no longer
fixed to 32 MB.
* Image viewer and GNUPlot can be used at the same time again.
The environment variable OCTAVE_IMAGE_VIEWER is supported again.
* (require 'hilit19) added in lisp files.
* octave-mode.el modified: switch/case/otherwise/endswitch statement included.
Octave 2.02 Build 02:
*********************
* Bug in usleep fixed. plot works again.
* erf(x) and erfc(x) are supported. Bug in erfinv.m is fixed.
* gamma(2000) no longer aborts Octave.
* Bugfixes in the installationsscript. Corrected README.OS2
* Default value of IMAGEPATH now points to ../scripts/image.
* Patch included (oct-stream.cc):
scanf reads correctly when using %f or %e.
Octave 2.02 Build 01:
*********************
* POPEN2.M modified: The script now uses the new function spawn to start
the child process.
* The environment variable OCTAVE_IMAGE_VIEWER is no longer supported. Modify
the script file IMAGE.M, if you want to use another image viewer.
* Function added: child_purge_temp_file. It removes the temporary file
when the specified child process dies (used in IMAGE.M).
* The pipe function returns the file handles and not the Octave's file ids.
Use fdopen to open the handles!
* Functions added: dup, close, fdopen.
* Function added: spawn.
* Octave reads OS/2 BMP (version 1.0) Windows BMP, PNM (P1 - P6) and
Octave's IMG format. It writes OS/2 BMP (version 1.0) Windows BMP,
PNM (P5, P6), Postscript and Octave's IMG format. LOADIMAGE.M and
SAVEIMAGE.M are modified (the original version are in the archive
image.zip).
* New version: Octave 2.0.2
* Bug fixes in dlfcn.lib.
Octave 2.01 Build 01:
*********************
* Dynamik Linking is now supported! See hello.cc and make_int.cc for
example. A small bug in make_int.cc fixed.
* Bug in xor.m fixed.
* Bug in the installation script fixed: The script will not replace the first
"\DLL" in LIBPATH, if Octave is installed for the first time on a system.
* The installation script is renamed to inst-octave.cmd.
* New version 2.0.1.
* All C++ Code is now placed in DLLs.
* GNUPLOT is started as normal VIO, so gshow will work. Also because of other
changes in the code, CTRL-C works even when GNUPLOT is started.
* Minor changes in the sources.
Octave 2.00 Build 01:
*********************
* New version: Octave 2.0.
* Script and function files are loaded correctly even if they contain an
End-of-file character. This character will be interpreted as a newline
character.
* saveimage saves images in bmp, gif and ps files.
*******************************************************************************
** Changes since the Version 1.1.1 of Octave for OS/2 **
*******************************************************************************
Octave 1.94 Build 01:
*********************
* New version 1.94 (pre-2.0). Keep in mind:
***************************************************************************
** Octave 1.94 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in version 2.0 **
***************************************************************************
* New command line flag '-I'. It forces interactive behaviour, but
deactivates the pager, even if Octave is in interactive mode.
* Every signal which will cause a jump to toplevel (Octave prompt), will
be handled differently if a script or function file is executed: It will
be handled as an error.
* A new installation script: This script make changes in the config.sys,
.octaverc, .emacs and dir. It unzips the scriptfiles and creates an object
on the desktop! The info-files will be copied to the correct directory
and older DLLs coming with EMX will be removed, if necessary.
Octave 1.93 Build 02:
*********************
* Script and function files are loaded correctly even if they no text file
(CR/LF).
* The sigchld_handler in sighandlers.cc is patched:
When no child in octave_child_list has created SIGCHLD, waitpid is
executed. This solves problems with displaying images when GNUPLOT is
running, and similar problems.
* Octave's system command now correctly returns the output or the pid,
depending on the number or values of the arguments.
* The image viewer is started in "async" mode.
Octave 1.93 Build 01:
*********************
* New version 1.93 (pre-2.0). Keep in mind:
***************************************************************************
** Octave 1.93 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in version 2.0 **
***************************************************************************
* Changes in octave.el: hilit19 is used for octave-shell-mode.
Octave 1.92 Build 02:
*********************
* get_size () in oct-stream.cc patched:
fread works with a scalar as second argument.
* Function kbhit () in sysdep.cc calls flush_octave_stdout.
* sighandlers.cc and toplev.cc patched:
Ctrl-C and Ctrl-Break will work more than only once again.
Octave 1.92 Build 01:
*********************
* New version 1.92 (pre-2.0). Keep in mind:
***************************************************************************
** Octave 1.92 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in version 2.0 **
***************************************************************************
* Minor bug fixes in octave-info.el.
* Changes in octave-mode.el: hilit19 is used for editing script files.
* New command add to the Emacs-Shell-Mode for Octave: warranty, multiplot,
close multiplot, subwindow.
* Minor changes in the the makefiles for OS/2. These changes do not
modify the binary.
Octave 1.91 Build 01:
*********************
* New version 1.91 (pre-2.0). Keep in mind:
***************************************************************************
** Octave 1.91 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in version 2.0 **
***************************************************************************
Octave 1.90 Build 01:
*********************
* New version 1.90 (pre-2.0). Keep in mind:
***************************************************************************
** Octave 1.90 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in version 2.0 **
***************************************************************************
* New libraries (readline, kpathsea).
* Octave uses again an internal info viewer. This ensures that it runs
correctly under the control of Emacs.
* Signal handler for SIGCHLD gepatcht.
* Octave needs the GNUPLOT 3.6 beta to display multiple plots.
* Since the new compiler supports multiple heaps it is no longer
necessary to fix the heap size during the installation.
* The environment variable specifies the name of the init file octave executes
on startup.
*******************************************************************************
** Changes since the Version 1.1.0 of Octave for OS/2 **
*******************************************************************************
Octave 1.1.1 Build 08:
**********************
* The cursor type will be selected in readline.
* New Compiler (emx-gcc 0.9c) and libraries used.
* The Stacksize has been increased.
* Signal handling is improved: Ctrl-Break always acts in the same way Ctrl-C
does. No signal handler for SIGTERM!
Octave 1.1.1 Build 07:
**********************
* All FPE signals are now explicity masked off. The fixes the bugs when
running Octave on systems with GAMESRVR.DLL.
Octave 1.1.1 Build 06:
**********************
* Pause now works also when running Octave under Emacs.
* The Octave's 'system' (or 'shell_cmd') is fixed. This fixes also the bug in
saveimage.
* xvos2 now uses the image viewer specified in the environment variable
OCTAVE_IMAGE_VIEWER, if set, or ib.exe if not.
Octave 1.1.1 Build 05:
**********************
* New Compiler (emx-gcc 0.9B) and libraries (stdcpp, libg++, ...)
* New info browser version 2.14
* parse.y was patched:
A parse error will not abort the parser, if octave is forced to be
interactive (-i).
* lex.l was patched:
SIGINT will not crash Octave, if octave is forced to be interactive (-i).
* info will not kill the octave process, if the terminal type is emacs.
It displays a message, so that emacs can start its own info browser.
* The routines read and write in liboctave/dMatrix.cc are patched:
The streams are set to binary mode before writing/reading and set back to
text mode after.
* Emacs-Shell-Mode for Octave including Info, temporary files, script files.
* New function in Octave: add_to_command_number.
Octave 1.1.1 Build 04:
**********************
* image uses now ib.exe (the Multimedia Viewer coming with Warp) to view
the images. This works also when GNUPLOT is running.
* GNUPLOT is now started as PM program in a different session. Now one can
use Ctrl-C to interrupt Octave, when Gnuplot is running.
* Internal Changes in Iostream:
New function _io_popen (used in the member functions of the class procbuf):
The command is now executed direct, without the command processor cmd.exe
(or ...). The way the program is started (PM, Session, ...) is specified
in the third argument of _io_popen. If this fails, the command is
executed via the command processor.
* A new signal handler (SIGINT) for parse_and_execute: The script files
are closed, if the execution is interrupted by the user. The signal works
like an error!
Octave 1.1.1 Build 03:
**********************
* The signal handler is fixed: Ctrl-C works now more than only ones.
Octave 1.1.1 Build 02:
**********************
* The function script polyreduce.m is fixed. So the functions deconv and
residue are working.
* The Fortran and C routines are now in DLLs. This reduces the size of the
executable and octave needs not so much memory at start time.
* The libraries of info, kpathsea and readline are linked using DLLs. The
stand-alone info browser (info.exe) uses also that DLLs.
* The heap is not longer fixed to 32 MB (by emx gcc). The user can select the
best heap size for his problems and his system.
* The iostream library is fixed: Octave reads binary files (load -b or
load -m).
* A few changes in the source code.
* New Version of Octave (1.1.1).
* Octave no longer hangs the WPS, if it is closed by typing quit, while
GNUPLOTPM is still running.
*******************************************************************************
** Changes since the Version 1.0 of Octave for OS/2 **
*******************************************************************************
* Octave now uses ';' as separator in paths.
* Drives are now supported in paths. So you can start octave from a
different drive and octave will find the script files.
* Drives are also supported in 'cd' and 'pwd'.
* Control-C works more than once.
* By defining USE_EXTERNAL_TEMPLATES and using emxbind -s I made the file
octave.exe much smaller.
* The temporary files created by the commands edit_history and run_history
are deleted.
* The info files are changed for FAT.
* I create a second set of script files, patched for FAT.
* Octave uses the file in the environment variable OCTAVE_INITFILE instead
of .octaverc, if the variable is set.
* New Version of Octave (Version 1.1.0)
* New Compiler (emx-gcc 0.9A) and libraries (iostream 0.66)
* I add the extproc-statement.
* Octave executes now a interactive script from a file in the command line.
* Images can be viewed using ghostscript.
* Octave uses now GNUPLOT 3.5. |
hobbes.nmsu.edu/download/pub/os2/apps/math/octave/octa21eb.zip | ||
Octave v. 2.1.14 (15/6/1999, Klaus Gebhardt) | Readme/What's new |
Octave -- a high-level language for numerical computations.
**************************************************************************
** P L E A S E N O T E **
**************************************************************************
** Because i no longer work for the Technical University of **
** Darmstadt, my email address has changed: **
** **
** 100114.1371@compuserve.com **
** gebhardt@wotan.ikp.physik.tu-darmstadt.de **
** **
** The CompuServe address is the more reliable address! **
** **
** Sorry for the inconvenience, **
** Klaus Gebhardt **
**************************************************************************
**************************************************************************
** P L E A S E N O T E **
**************************************************************************
** This is a development version of Octave. Development releases **
** are provided for people who want to help test, debug, and improve **
** Octave. **
** **
** If you want a stable, well-tested version of Octave, you should be **
** using one of the stable releases (when this development release **
** was made, the latest stable version was 2.0.13). **
**************************************************************************
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.
Used Compiler and Libraries
---------------------------
Octave for OS/2 is compiled using EMX-GCC 0.9C (with EMXFIX04) and
libg++ 2.7.2.
The fortran routines are translated to C using f2c.
Binary Distribution
-------------------
Why a binary distribution?
1. There are only minor changes made in the source files of octave. The main
job was patching stdcpp, info, kpathsea and readline.
2. octave is big (40 MB with the source, object files and libraries) and it
takes time to compile the program. (ca. 50 minutes on my
133 MHz Pentium-Overdrive system = ca. 8 hours on a 486DX-33).
Compiling Octave
----------------
If you want to compile Octave yourself you must download the patched sources and
unpack them. Modify the paths in the file makeversions depending on your
system setup an run 'make octave'.
Files
-----
The files BUGS, CHANGELO, CHANGELO.1, COPYING, NEWS, NEWS.1, PROJECTS, README,
ROADMAP, SENDING.PAT and THANKS are part of the octave 2.1.14 source code.
In the zip file scripts.zip are the scripts coming with octave 2.1.14.
The installation script will unzip the correct set of script files for
your file system.
The files COPYING.EMX, emx.dll, emxlibcs.dll and termcap.dat are part of the
emx 0.9c package (with EMXFIX04 applied, see COPYING.EMX).
octave.exe and octave.ico are the executable and the icon of the main program.
The file octave.exe must no longer be build by the install program!
info.exe is the standalone info browser coming with EMX. It was recompiled
so that info.exe and octave.exe uses the same DLL (gnuinfo.dll). And it is
patched so that info.exe accepts the '--index-search' option.
gnuview.exe is a replacement for info.exe: It accepts the same command
line option, but it starts OS/2s view.exe.
mkfifo.exe is the utility for creating, removing and listing named pipes. It
starts the program nmpserv.exe, if neccessary.
The program oct-view.exe is used for starting the image viewer.
README.OS2 is the file you are reading.
In the directory 'lisp' you find the elisp files (and the compiled elisp files)
you need to run Octave in an Emacs subshell and the files for editing script
files or temporary files of octave using the Emacs editor.
In the directory 'doc' you can find the documentation in dvi, postscript,
and also the info files and the INF files.
In the directory 'dll' you can find the Dynamic Link Libraries of octave and
emx, and the file termcap.dat is in the directory etc.
All files you need for using the dynamic loading in Octave for loading your
own C++ routines into Octave are in 'dlfcn' and its subdirectories.
Other Files of Interest
-----------------------
octa21Eb.zip or octave-2.1.14-b??.zip:
The binary distribution of Octave-2.1.14.
octa21Ep.zip or octave-2.1.14-p??.zip:
This archive contains always the update to the newest build.
octa21Es.zip or octave-2.1.14-s??.zip:
The patched source code for octave (including info, kpathsea,
iostream, readline and pnm).
You need also the following packages. They are available on ftp.cdrom.com,
hobbes.nmsu.edu and wotan.ikp.physik.tu-darmstadt.de. less and gnufutil
should be also on ftp.uni-stuttgart.de and ftp.leo.org, and the gnuplot
beta on cmpc1.phys.soton.ac.uk.
less252-2.zip: The less pager ported by Kai Uwe Rommel.
(I know there is a newer version, but i forgot the number :-))
gp315os2b.zip: GNUPLOT 3.6 (beta 315)
gnufutil.zip : The GNU file utilities.
pmvu93.zip : PM View 0.93.
Updating to the most recent build level
---------------------------------------
**************************************************************************
** BEFORE APPLYING A PATCH MAKE SURE THAT THE PATCH IS FOR YOUR **
** INSTALLED OCTAVE VERSION (CHECK THE TIMESTAMPS OF THE FILES). **
**************************************************************************
** DO NOT INSTALL AN OLDER PATCH OVER A NEWER VERSION OF OCTAVE! **
**************************************************************************
1. First you must install Octave. See Installation below.
2. Unzip the patches into the directory you have Octave/2 installed in.
3. Change into that directory and type 'updt-octave'
4. Type 'inst-octave /clean'
Installation
------------
Change to the directory of octave and run install (REXX must be installed!):
1. Type 'inst-octave /install':
The script make changes in the config.sys, .octaverc, .emacs and dir.
It unzips the scriptfiles, removes older emx-dlls, copies the info-files
to the INFO directory and creates an object on the desktop!
For all modified or deleted files it will create backups in the current
directory.
**************************************************************************
** BEFORE REBOOTING CONFIRM THE CHANGES THIS SCRIPT WILL HAVE DONE **
** IN YOUR CONFIG.SYS! **
**************************************************************************
** IF THERE IS SOMETHING WRONG PLEASE SEND ME A NOTE! **
**************************************************************************
2. If necessary the script will ask you to reboot. Do so.
3. To save disk space you can use 'inst-octave /clean'. All the files you
don't need for running octave are deleted. All backup files are also
removed.
The setup script modify the following parts of the config.sys, if necessary:
PATH=...;h:\apps\science\octave;
LIBPATH=...;h:\apps\science\octave\dll;
The directory you have Octave installed in:
SET OCTAVE_HOME=c:/octave
Terminal type and a pointer to the TERMCAP.DAT file:
SET TERM=ansi
SET TERMCAP=h:/apps/science/octave/etc/termcap.dat
Your home directory (place of your initialization files)
SET HOME=h:/.
The name of the initialization file:
SET OCTAVE_INITFILE=octave.ini
The directory for your info files:
SET INFOPATH=.;h:/apps/science/octave/doc
The directory of Gnuplot:
SET GNUPLOT=h:/apps/science/gnuplot
Running Octave
--------------
When you start octave (without -f, --norc or --ignore-init-file), octave will
execute the following files:
1. scripts\startup\octaverc:
Octave will use the editor 'emacsclient' and the pager 'less'. The info
files are located using the environment variable INFOPATH and the
gnuplot_binary using the environment variable GNUPLOT.
2. The file, which name is given by the environment variable OCTAVE_INITFILE,
or .octaverc, if there is no OCTAVE_INITFILE. Both are searched in your
HOME directory.
You can use octave as an external processor in an batch file, if the first
line in the batch file is
extproc octave -q
or
EXTPROC octave -q.
This is the same as using octave -q file.cmd.
GNUPLOT
-------
Octave uses GNUPLOT to display plots. I have tested octave with GNUPLOT 3.6
(beta 315). The system-wide startup file octaverc in the directory
scripts/startup reads the environment variable GNUPLOT and appends
"/gnuplot.exe". This should be the path and name of GNUPLOT. So if the
executable (gnuplot.exe) is in the directory h:\apps\science\gnuplot
add the following line to your config.sys:
SET GNUPLOT=h:/apps/science/gnuplot
You must use the beta of GNUPLOT because it supports multiple plots.
PAGER
-----
If you want to use the less pager, you need the file less252-2.zip or newer.
This less port does not use the termcap library, so it is unable to work with
ansi-color-2, ansi-color-3,...
If you want to use ansi-color-3, you must recompile less after deleting
termcap.c and adding the termcap-library in the makefile, or you must edit
the file termcap.dat: Replace every tc=ansi in the termcap.dat by the lines
following ansi.
EMACS
-----
You can use emacs to edit the script files of octave. To do so add the lines
(setq load-path (append '("h:/apps/science/octave/lisp") load-path))
(autoload 'octave-mode "octave-mode" "Enter Octave mode." t)
(setq auto-mode-alist (cons '("\\.[Mm]$" . octave-mode) auto-mode-alist))
(defun my-octave-mode-hook ()
(setq fill-column 76)
(auto-fill-mode 1))
(setq octave-mode-hook 'my-octave-mode-hook)
(setq octave-prog-filename "h:/apps/science/octave/octave.exe")
to your .emacs.
If you run emacs in server mode, octave can use the emacsclient for editing
temporary files. Add the following lines to .emacs:
(autoload 'octave-tmp-mode "octave-tmp-mode" "Enter Octave's tmp mode." t)
(setq auto-mode-alist
(cons '("[Oo][Cc][Tt]-....\\.[Tt][Mm][Pp]$" . tmp-mode)
auto-mode-alist))
The tmp mode is the normal text mode with one exception: If you finished
editing by pressing C-x # the buffer is killed. So octave can delete the file.
If you want to run Octave in a special shell mode under Emacs you must also
add the following line to .emacs:
(require 'octave)
There is also another octave shell mode, which is normally part of
Octave. The file is called octave.el. I do not use it, because it created
a lot of problems on my system AND it won't work correctly.
For example your .emacs file should look like this:
(setq load-path (append '("h:/apps/science/octave/lisp") load-path))
(require 'octave)
(autoload 'octave-mode "octave-mode" "Enter Octave mode." t)
(setq auto-mode-alist (cons '("\\.[Mm]$" . octave-mode) auto-mode-alist))
(defun my-octave-mode-hook ()
(setq fill-column 76)
(auto-fill-mode 1))
(setq octave-mode-hook 'my-octave-mode-hook)
(setq octave-prog-filename "h:/apps/science/octave/octave.exe")
(autoload 'octave-tmp-mode "octave-tmp-mode" "Enter Octave's tmp mode." t)
(setq auto-mode-alist
(cons '("[Oo][Cc][Tt]-....\\.[Tt][Mm][Pp]$" . octave-tmp-mode)
auto-mode-alist))
Dynamic Loading of C++ Functions
--------------------------------
This port now supports the dynamic loading. Use the script MAKE-OCTFILE to
compile your scripts EVERY time you installed a new version of Octave! The
script MAKE-OCTFILE is created by INST-OCTAVE.
For example:
cd dlfcn\examples
make-octfile hello.cc
and add the path '.../dlfcn/examples' to Octave's LOADPATH; start Octave and
type 'hello (1,2,3)'.
You can find examples in the directories '.../dlfcn/examples' and
'scripts/image/codecs'.
Images
------
Octave for OS/2 uses the excellent PM View. If you want to use a different
viewer or if your PM View is installed in directory other then
h:\apps\graphics\pmview, set the environment variable OCTAVE_IMAGE_VIEWER.
You can use the environment variable OCTAVE_IMAGE_VIEWER_OPT for specifying
command line options: For example:
SET OCTAVE_IMAGE_VIEWER=c:\pmview\pmview.exe
SET OCTAVE_IMAGE_VIEWER_OPT=/WPos(,,,,ForAct)
For loading and saving images Octave uses now the DLFCN feature. Octave can
read and write BMP, PNM, IMG formats and write Postscript.
MKFIFO
------
The mkfifo command is now supported! You can use Octave's mkfifo command
to create a named pipe for communication with another program (local or
in a LAN). There is also a utility called mkfifo, which can be used for
creating, removing, listing named pipes, you have created with mkfifo.
The names of the pipes must start with '\PIPE' or with '/PIPE'. If you want
access to a pipe on another computer in your LAN you must prepend
'\\HOSTNAME', where HOSTNAME stands for the name of the computer.
For example:
1) Start octave.
2) Open an OS/2 window.
3) Run mkfifo \PIPE\TEST
4) Type 'echo abcdef >\PIPE\TEST' in the OS/2 window
5) In Octave execute the following commands:
fid = fopen ("/PIPE/TEST", "r");
fgets (fid)
fclose (fid);
6) Run mkfifo -d \PIPE\TEST in the OS/2 window
To speed up the execution of the first mkfifo command you can add the
following in your STARTUP.CMD:
detach [DRIVE:]\[PATH]\nmpserv --noexit
Known Limitations, Modifications and Bugs
-----------------------------------------
1) fork is not supported, use spawn instead. Compare the script file popen2.m
with the original version (popen2.org).
2) dup2 has been renamed to _dup2
3) Because of an OS/2 limitation dynamic loading of C++ functions will only
work, if the length of the function name is less than 8 characters.
Comments, Bugs, Problems, Ideas, ...
------------------------------------
If you have any problem installing or using this port, let me know!
If have any idea to make octave for OS/2 a better program, send me a mail.
Also any comments are welcome.
And thanks for all your nice mails i received, and thanks to all of you
helping me to remove the bugs.
My email addresses are:
INTERNET: 100114.1371 @ compuserve . com
gebhardt @ wotan . ikp . physik . tu - darmstadt . de
CompuServe: 100114,1371
Klaus Gebhardt [TEAM OS/2]
Competence Center Architecture and Technology
Deutsche Boerse Systems
*******************************************************************************
** Changes since the Version 2.09 of Octave for OS/2 **
*******************************************************************************
Octave 2.1.14 Build 01:
***********************
* New version:
***************************************************************************
** Octave 2.1.14 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in the next version. **
***************************************************************************
Octave 2.0.14 Build 01:
***********************
* New Version 2.0.14
* diary bug fixed: User input when running a script will now be written into
the diary file.
Octave 2.0.13 Build 02:
***********************
* oregon.cc renamed.
* Patch included:
src/file-io.cc and liboctave/data-conv.cc: uint16 and uint32 types supported
in fread.
* Complex erf added to examples for dlfcn.
* Patch included:
data.cc: is_complex added.
* GNU Info updated to version 2.18.
* kpathsearch version 3.2 used.
* Help in image.m is now correct.
Octave 2.0.13 Build 01:
***********************
* New Version 2.0.13
* Plot functions patched.
* Patch included:
DASSL.cc (DASSL::do_integrate): If an exception occurs in the
call to ddassl, set integration_error to 1 before calling the
error handler and returning.
* Patch included:
Array2-idx.h (assign): Allow A([],[]) = scalar and, if
do_fortran_indexing is set, A([]) = scalar.
Array-idx.h (assign): Allow A([]) = scalar.
* Patch included:
time.cc (extract_tm): Truncate field values instead of rounding.
(Fgmtime, Flocaltime): Likewise, for timeval.
Octave 2.0.11 Build 02:
***********************
* New Version 2.0.11
* Patch included:
symtab.cc (symbol_record::variable_value): Avoid dereferencing
NULL pointer.
* Patch included:
lo-spec-fun: the order of the arguments in the gammai and gammainc.
* Patch included:
error.cc (verror): Fix thinko in attempt to skip `error: ' tag
when buffering error messages.
pt-cmd.cc (tree_try_catch::eval): Reset buffer_error_messages
here if just discarding unwind_protect frame.
* Typos in mplot.m fixed.
* __pltopt__ functionality extended:
Now, for plot (x, y, fmt) in the cases where either x or y (or both)
are matrices, fmt can also be a string array. The rows of the string
array correspond to the lines on the plot:
plot/__pltopt1.m__: New file.
plot/__pltopt.m__: Handle opt as a string array by calling
__pltopt1__ multiple times and returning a string array with rows
corresponding to the rows of opt.
plot/__plt2ss__.m, plot/__plt2vv__.m, plot/__plt2vm__.m,
plot/__plt2mv__.m, plot/__plt2mm__.m: Handle fmt as a string
array.
Octave 2.0.10 Build 01:
***********************
* New Version 2.0.10
* Default install path changed (h:/apps/science/octave).
Octave 2.09.98 Build 01:
************************
* New Version 2.0.9.98 (Beta)
Octave 2.09.97 Build 01:
************************
* New Version 2.0.9.97 (Beta)
*******************************************************************************
** Changes since the Version 1.9x of Octave for OS/2 **
*******************************************************************************
Octave 2.09 Build 04:
*********************
* makefile.os2 modified: This corrects the missing xmalloc.lib problem, when
using make-octfile.
* lgamma(-2) no longer aborts Octave.
* Minor changes in the source code.
* Patch for filter.cc included.
* sighandlers.cc (octave_child_list::do_remove) and
toplev.cc (run_command_and_return_output) modified:
[a,b] = system ("dir") returns the correct return value in b.
* Patch included:
* pt-mat.h (tree_matrix_row::preserve_expr): New private data.
(tree_matrix_row::~tree_matrix_row): Delete list contents.
(tree_matrix::~tree_matrix): Delete list contents.
* pt-mat.cc (tree_matrix_row::to_return_list): Set preserve_expr
to true if successful.
* get_boot_drive in inst-octave.cmd and updt-octave.cmd patched.
* Patch included:
* input.cc (get_user_input): Return an empty string if the user
just types RET.
Octave 2.09 Build 03:
*********************
* mkfifo is now supported.
* inst-octave.cmd creates WPS objects for the documentation.
* The documentation is now also available in OS/2's INF format. You can
view them using gnuview as Octave's external info viewer.
* Compiler updated (EMXFIX03).
* Bug in logm (wrong result for a complex scalar argument) fixed.
* Minor changes in the sources and makefiles.
* Workaround for the bug in the fortran routine DGELSS added (in CMatrix.cc).
* Patch included:
* idx-vector.cc (IDX_VEC_REP::sort): New function.
* idx-vector.h (idx_vector::sort): Ditto.
* Array2-idx.h (Array2<T>::maybe_delete_elements): Use it before
trying to delete elements specified by the index vectors.
Octave 2.09 Build 02:
*********************
* Bug in cruft4.def fixed, which caused Octave to crash, when trying to
compute eig(A), with a complex matrix A.
Octave 2.09 Build 01:
*********************
* New Version 2.0.9.
Octave 2.08 Build 01:
*********************
* New Version 2.0.8.
* Patch for pt-fvc.cc included.
Octave 2.07 Build 01:
*********************
* New Version 2.0.7.
Octave 2.06 Build 01:
*********************
* New Version 2.0.6.
* All functions working with FILE IDS (file handles) are renamed:
_dup, _dup2, _close, _fdopen, _pipe.
* The function pipe is now returning the octave file streams.
* Minor modifications in the makefiles.
Octave 2.05 Build 04:
*********************
* inst-octave.cmd and updt-octave.cmd patched.
* Patches included:
input.cc (octave_read):
Don't forget to free input buffer if it exists and has zero length.
(gnu_readline):
Free buf if fgets returns 0.
parse.y:
Parse error will not abort Octave, when forced_interactive "-i"
Array2-idx.h (Array2<T>::maybe_delete_elements):
Prevent out-of-bounds indexing of the index array.
Array-idx.h (Array<T>::maybe_delete_elements): Likewise.
idx-vector.cc (IDX_VEC_REP::is_colon_equiv):
Make it work when the vector is not sorted.
Octave 2.05 Build 03:
*********************
* lex.l patched:
help will work with text mode files, even if the help text is not at the
beginning of the file.
* Lisp files modified:
hilit19 will not be loaded, when running emacs in normal text mode.
* parse.y patch included:
Using formal parameters for functions, the names of which are already
being used by builtin functions, will not produce errors. For example:
function y=f(type), y=type; end;
* variables.cc patched: <CR>s are not copied into the help text.
* The full name of the executable can be specified in .emacs.
* inst-octave.cmd and updt-octave.cmd patched.
* lex.l patched: Octave reads script and function files with lines like:
x = x + ...
3;
Octave 2.05 Build 02:
*********************
* New internal system routine (also used in procbuf):
All / in the executable are replaced by \ when using cmd.exe or 4os2.exe
as shell and all \ are replaced by / when using a UNIX shell.
* make-octfile.cmd patched: The dynamic loading of function will
under OS/2 2.xx.
* nextpow2.m patched: nextpow2(1000) returns 10.
* inst-octave.cmd patched: scripts.fat will be renamed to scripts on FAT.
* The files in the subdirectory doc are FAT compatible.
* Octave reads script and function files with lines like:
M = [1 2
3 4]
Octave 2.05 Build 01:
*********************
* New version: Octave 2.0.5
* help will work with text (<CR>>LF>) files.
* No endfunction is needed at the end of a function file.
* Octave uses noncontinous multiple heaps. So the heap size is no longer
fixed to 32 MB.
* Image viewer and GNUPlot can be used at the same time again.
The environment variable OCTAVE_IMAGE_VIEWER is supported again.
* (require 'hilit19) added in lisp files.
* octave-mode.el modified: switch/case/otherwise/endswitch statement included.
Octave 2.02 Build 02:
*********************
* Bug in usleep fixed. plot works again.
* erf(x) and erfc(x) are supported. Bug in erfinv.m is fixed.
* gamma(2000) no longer aborts Octave.
* Bugfixes in the installationsscript. Corrected README.OS2
* Default value of IMAGEPATH now points to ../scripts/image.
* Patch included (oct-stream.cc):
scanf reads correctly when using %f or %e.
Octave 2.02 Build 01:
*********************
* POPEN2.M modified: The script now uses the new function spawn to start
the child process.
* The environment variable OCTAVE_IMAGE_VIEWER is no longer supported. Modify
the script file IMAGE.M, if you want to use another image viewer.
* Function added: child_purge_temp_file. It removes the temporary file
when the specified child process dies (used in IMAGE.M).
* The pipe function returns the file handles and not the Octave's file ids.
Use fdopen to open the handles!
* Functions added: dup, close, fdopen.
* Function added: spawn.
* Octave reads OS/2 BMP (version 1.0) Windows BMP, PNM (P1 - P6) and
Octave's IMG format. It writes OS/2 BMP (version 1.0) Windows BMP,
PNM (P5, P6), Postscript and Octave's IMG format. LOADIMAGE.M and
SAVEIMAGE.M are modified (the original version are in the archive
image.zip).
* New version: Octave 2.0.2
* Bug fixes in dlfcn.lib.
Octave 2.01 Build 01:
*********************
* Dynamik Linking is now supported! See hello.cc and make_int.cc for
example. A small bug in make_int.cc fixed.
* Bug in xor.m fixed.
* Bug in the installation script fixed: The script will not replace the first
"\DLL" in LIBPATH, if Octave is installed for the first time on a system.
* The installation script is renamed to inst-octave.cmd.
* New version 2.0.1.
* All C++ Code is now placed in DLLs.
* GNUPLOT is started as normal VIO, so gshow will work. Also because of other
changes in the code, CTRL-C works even when GNUPLOT is started.
* Minor changes in the sources.
Octave 2.00 Build 01:
*********************
* New version: Octave 2.0.
* Script and function files are loaded correctly even if they contain an
End-of-file character. This character will be interpreted as a newline
character.
* saveimage saves images in bmp, gif and ps files.
*******************************************************************************
** Changes since the Version 1.1.1 of Octave for OS/2 **
*******************************************************************************
Octave 1.94 Build 01:
*********************
* New version 1.94 (pre-2.0). Keep in mind:
***************************************************************************
** Octave 1.94 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in version 2.0 **
***************************************************************************
* New command line flag '-I'. It forces interactive behaviour, but
deactivates the pager, even if Octave is in interactive mode.
* Every signal which will cause a jump to toplevel (Octave prompt), will
be handled differently if a script or function file is executed: It will
be handled as an error.
* A new installation script: This script make changes in the config.sys,
.octaverc, .emacs and dir. It unzips the scriptfiles and creates an object
on the desktop! The info-files will be copied to the correct directory
and older DLLs coming with EMX will be removed, if necessary.
Octave 1.93 Build 02:
*********************
* Script and function files are loaded correctly even if they no text file
(CR/LF).
* The sigchld_handler in sighandlers.cc is patched:
When no child in octave_child_list has created SIGCHLD, waitpid is
executed. This solves problems with displaying images when GNUPLOT is
running, and similar problems.
* Octave's system command now correctly returns the output or the pid,
depending on the number or values of the arguments.
* The image viewer is started in "async" mode.
Octave 1.93 Build 01:
*********************
* New version 1.93 (pre-2.0). Keep in mind:
***************************************************************************
** Octave 1.93 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in version 2.0 **
***************************************************************************
* Changes in octave.el: hilit19 is used for octave-shell-mode.
Octave 1.92 Build 02:
*********************
* get_size () in oct-stream.cc patched:
fread works with a scalar as second argument.
* Function kbhit () in sysdep.cc calls flush_octave_stdout.
* sighandlers.cc and toplev.cc patched:
Ctrl-C and Ctrl-Break will work more than only once again.
Octave 1.92 Build 01:
*********************
* New version 1.92 (pre-2.0). Keep in mind:
***************************************************************************
** Octave 1.92 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in version 2.0 **
***************************************************************************
* Minor bug fixes in octave-info.el.
* Changes in octave-mode.el: hilit19 is used for editing script files.
* New command add to the Emacs-Shell-Mode for Octave: warranty, multiplot,
close multiplot, subwindow.
* Minor changes in the the makefiles for OS/2. These changes do not
modify the binary.
Octave 1.91 Build 01:
*********************
* New version 1.91 (pre-2.0). Keep in mind:
***************************************************************************
** Octave 1.91 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in version 2.0 **
***************************************************************************
Octave 1.90 Build 01:
*********************
* New version 1.90 (pre-2.0). Keep in mind:
***************************************************************************
** Octave 1.90 is a test release! **
** If you have any problems, please report them, so that they can be **
** fixed in version 2.0 **
***************************************************************************
* New libraries (readline, kpathsea).
* Octave uses again an internal info viewer. This ensures that it runs
correctly under the control of Emacs.
* Signal handler for SIGCHLD gepatcht.
* Octave needs the GNUPLOT 3.6 beta to display multiple plots.
* Since the new compiler supports multiple heaps it is no longer
necessary to fix the heap size during the installation.
* The environment variable specifies the name of the init file octave executes
on startup.
*******************************************************************************
** Changes since the Version 1.1.0 of Octave for OS/2 **
*******************************************************************************
Octave 1.1.1 Build 08:
**********************
* The cursor type will be selected in readline.
* New Compiler (emx-gcc 0.9c) and libraries used.
* The Stacksize has been increased.
* Signal handling is improved: Ctrl-Break always acts in the same way Ctrl-C
does. No signal handler for SIGTERM!
Octave 1.1.1 Build 07:
**********************
* All FPE signals are now explicity masked off. The fixes the bugs when
running Octave on systems with GAMESRVR.DLL.
Octave 1.1.1 Build 06:
**********************
* Pause now works also when running Octave under Emacs.
* The Octave's 'system' (or 'shell_cmd') is fixed. This fixes also the bug in
saveimage.
* xvos2 now uses the image viewer specified in the environment variable
OCTAVE_IMAGE_VIEWER, if set, or ib.exe if not.
Octave 1.1.1 Build 05:
**********************
* New Compiler (emx-gcc 0.9B) and libraries (stdcpp, libg++, ...)
* New info browser version 2.14
* parse.y was patched:
A parse error will not abort the parser, if octave is forced to be
interactive (-i).
* lex.l was patched:
SIGINT will not crash Octave, if octave is forced to be interactive (-i).
* info will not kill the octave process, if the terminal type is emacs.
It displays a message, so that emacs can start its own info browser.
* The routines read and write in liboctave/dMatrix.cc are patched:
The streams are set to binary mode before writing/reading and set back to
text mode after.
* Emacs-Shell-Mode for Octave including Info, temporary files, script files.
* New function in Octave: add_to_command_number.
Octave 1.1.1 Build 04:
**********************
* image uses now ib.exe (the Multimedia Viewer coming with Warp) to view
the images. This works also when GNUPLOT is running.
* GNUPLOT is now started as PM program in a different session. Now one can
use Ctrl-C to interrupt Octave, when Gnuplot is running.
* Internal Changes in Iostream:
New function _io_popen (used in the member functions of the class procbuf):
The command is now executed direct, without the command processor cmd.exe
(or ...). The way the program is started (PM, Session, ...) is specified
in the third argument of _io_popen. If this fails, the command is
executed via the command processor.
* A new signal handler (SIGINT) for parse_and_execute: The script files
are closed, if the execution is interrupted by the user. The signal works
like an error!
Octave 1.1.1 Build 03:
**********************
* The signal handler is fixed: Ctrl-C works now more than only ones.
Octave 1.1.1 Build 02:
**********************
* The function script polyreduce.m is fixed. So the functions deconv and
residue are working.
* The Fortran and C routines are now in DLLs. This reduces the size of the
executable and octave needs not so much memory at start time.
* The libraries of info, kpathsea and readline are linked using DLLs. The
stand-alone info browser (info.exe) uses also that DLLs.
* The heap is not longer fixed to 32 MB (by emx gcc). The user can select the
best heap size for his problems and his system.
* The iostream library is fixed: Octave reads binary files (load -b or
load -m).
* A few changes in the source code.
* New Version of Octave (1.1.1).
* Octave no longer hangs the WPS, if it is closed by typing quit, while
GNUPLOTPM is still running.
*******************************************************************************
** Changes since the Version 1.0 of Octave for OS/2 **
*******************************************************************************
* Octave now uses ';' as separator in paths.
* Drives are now supported in paths. So you can start octave from a
different drive and octave will find the script files.
* Drives are also supported in 'cd' and 'pwd'.
* Control-C works more than once.
* By defining USE_EXTERNAL_TEMPLATES and using emxbind -s I made the file
octave.exe much smaller.
* The temporary files created by the commands edit_history and run_history
are deleted.
* The info files are changed for FAT.
* I create a second set of script files, patched for FAT.
* Octave uses the file in the environment variable OCTAVE_INITFILE instead
of .octaverc, if the variable is set.
* New Version of Octave (Version 1.1.0)
* New Compiler (emx-gcc 0.9A) and libraries (iostream 0.66)
* I add the extproc-statement.
* Octave executes now a interactive script from a file in the command line.
* Images can be viewed using ghostscript.
* Octave uses now GNUPLOT 3.5. |
hobbes.nmsu.edu/download/pub/os2/apps/math/octave/octa21ep.zip | ||
Octave v. 2.0.11 (Source code, 16/4/1998, Klaus Gebhardt) | Readme/What's new |
Octave -- a high-level language for numerical computations.
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.
Used Compiler and Libraries
---------------------------
Octave for OS/2 is compiled using EMX-GCC 0.9C (with EMXFIX04) and
libg++ 2.7.2.
The fortran routines are translated to C using f2c.
Binary Distribution
-------------------
Why a binary distribution?
1. There are only minor changes made in the source files of octave. The main
job was patching stdcpp, info, kpathsea and readline.
2. octave is big (40 MB with the source, object files and libraries) and it
takes time to compile the program. (ca. 50 minutes on my
133 MHz Pentium-Overdrive system = ca. 8 hours on a 486DX-33).
Files
-----
The files BUGS, CHANGELO, CHANGELO.1, COPYING, NEWS, NEWS.1, PROJECTS, README,
ROADMAP, SENDING.PAT and THANKS are part of the octave 2.0.10 source code.
In the zip file scripts.zip are the scripts coming with octave 2.0.10.
The installation script will unzip the correct set of script files for
your file system.
The files COPYING.EMX, emx.dll, emxlibcs.dll and termcap.dat are part of the
emx 0.9c package (with EMXFIX04 applied, see COPYING.EMX).
octave.exe and octave.ico are the executable and the icon of the main program.
The file octave.exe must no longer be build by the install program!
info.exe is the standalone info browser coming with EMX. It was recompiled
so that info.exe and octave.exe uses the same DLL (gnuinfo.dll). And it is
patched so that info.exe accepts the '--index-search' option.
gnuview.exe is a replacement for info.exe: It accepts the same command
line option, but it starts OS/2s view.exe.
mkfifo.exe is the utility for creating, removing and listing named pipes. It
starts the program nmpserv.exe, if neccessary.
The program oct-view.exe is used for starting the image viewer.
README.OS2 is the file you are reading.
In the directory 'lisp' you find the elisp files (and the compiled elisp files)
you need to run Octave in an Emacs subshell and the files for editing script
files or temporary files of octave using the Emacs editor.
In the directory 'doc' you can find the documentation in dvi, postscript,
and also the info files and the INF files.
In the directory 'dll' you can find the Dynamic Link Libraries of octave and
emx, and the file termcap.dat is in the directory etc.
All files you need for using the dynamic loading in Octave for loading your
own C++ routines into Octave are in 'dlfcn' and its subdirectories.
Other Files of Interest
-----------------------
octa20Ab.zip or octave-2.0.10-b??.zip:
The binary distribution of Octave-2.0.10.
octa20Ap.zip or octave-2.0.10-p??.zip:
This archive contains always the update to the newest build.
octa20As.zip or octave-2.0.10-s??.zip:
The patched source code for octave (including info, kpathsea,
iostream, readline and pnm).
You need also the following packages. They are available on ftp.cdrom.com,
hobbes.nmsu.edu and wotan.ikp.physik.tu-darmstadt.de. less and gnufutil
should be also on ftp.uni-stuttgart.de and ftp.leo.org, and the gnuplot
beta on cmpc1.phys.soton.ac.uk.
less252-2.zip: The less pager ported by Kai Uwe Rommel.
(I know there is a newer version, but i forgot the number :-))
gp315os2b.zip: GNUPLOT 3.6 (beta 315)
gnufutil.zip : The GNU file utilities.
pmvu93.zip : PM View 0.93.
Updating to the most recent build level
---------------------------------------
**************************************************************************
** BEFORE APPLYING A PATCH MAKE SURE THAT THE PATCH IS FOR YOUR **
** INSTALLED OCTAVE VERSION (CHECK THE TIMESTAMPS OF THE FILES). **
**************************************************************************
** DO NOT INSTALL AN OLDER PATCH OVER A NEWER VERSION OF OCTAVE! **
**************************************************************************
1. First you must install Octave. See Installation below.
2. Unzip the patches into the directory you have Octave/2 installed in.
3. Change into that directory and type 'updt-octave'
4. Type 'inst-octave /clean'
Installation
------------
Change to the directory of octave and run install (REXX must be installed!):
1. Type 'inst-octave /install':
The script make changes in the config.sys, .octaverc, .emacs and dir.
It unzips the scriptfiles, removes older emx-dlls, copies the info-files
to the INFO directory and creates an object on the desktop!
For all modified or deleted files it will create backups in the current
directory.
**************************************************************************
** BEFORE REBOOTING CONFIRM THE CHANGES THIS SCRIPT WILL HAVE DONE **
** IN YOUR CONFIG.SYS! **
**************************************************************************
** IF THERE IS SOMETHING WRONG PLEASE SEND ME A NOTE! **
**************************************************************************
2. If necessary the script will ask you to reboot. Do so.
3. To save disk space you can use 'inst-octave /clean'. All the files you
don't need for running octave are deleted. All backup files are also
removed.
The setup script modify the following parts of the config.sys, if necessary:
PATH=...;h:\apps\science\octave;
LIBPATH=...;h:\apps\science\octave\dll;
The directory you have Octave installed in:
SET OCTAVE_HOME=c:/octave
Terminal type and a pointer to the TERMCAP.DAT file:
SET TERM=ansi
SET TERMCAP=h:/apps/science/octave/etc/termcap.dat
Your home directory (place of your initialization files)
SET HOME=h:/.
The name of the initialization file:
SET OCTAVE_INITFILE=octave.ini
The directory for your info files:
SET INFOPATH=.;h:/apps/science/octave/doc
The directory of Gnuplot:
SET GNUPLOT=h:/apps/science/gnuplot
Running Octave
--------------
When you start octave (without -f, --norc or --ignore-init-file), octave will
execute the following files:
1. scripts\startup\octaverc:
Octave will use the editor 'emacsclient' and the pager 'less'. The info
files are located using the environment variable INFOPATH and the
gnuplot_binary using the environment variable GNUPLOT.
2. The file, which name is given by the environment variable OCTAVE_INITFILE,
or .octaverc, if there is no OCTAVE_INITFILE. Both are searched in your
HOME directory.
You can use octave as an external processor in an batch file, if the first
line in the batch file is
extproc octave -q
or
EXTPROC octave -q.
This is the same as using octave -q file.cmd.
GNUPLOT
-------
Octave uses GNUPLOT to display plots. I have tested octave with GNUPLOT 3.6
(beta 315). The system-wide startup file octaverc in the directory
scripts/startup reads the environment variable GNUPLOT and appends
"/gnuplot.exe". This should be the path and name of GNUPLOT. So if the
executable (gnuplot.exe) is in the directory h:\apps\science\gnuplot
add the following line to your config.sys:
SET GNUPLOT=h:/apps/science/gnuplot
You must use the beta of GNUPLOT because it supports multiple plots.
PAGER
-----
If you want to use the less pager, you need the file less252-2.zip or newer.
This less port does not use the termcap library, so it is unable to work with
ansi-color-2, ansi-color-3,...
If you want to use ansi-color-3, you must recompile less after deleting
termcap.c and adding the termcap-library in the makefile, or you must edit
the file termcap.dat: Replace every tc=ansi in the termcap.dat by the lines
following ansi.
EMACS
-----
You can use emacs to edit the script files of octave. To do so add the lines
(setq load-path (append '("h:/apps/science/octave/lisp") load-path))
(autoload 'octave-mode "octave-mode" "Enter Octave mode." t)
(setq auto-mode-alist (cons '("\\.[Mm]$" . octave-mode) auto-mode-alist))
(defun my-octave-mode-hook ()
(setq fill-column 76)
(auto-fill-mode 1))
(setq octave-mode-hook 'my-octave-mode-hook)
(setq octave-prog-filename "h:/apps/science/octave/octave.exe")
to your .emacs.
If you run emacs in server mode, octave can use the emacsclient for editing
temporary files. Add the following lines to .emacs:
(autoload 'octave-tmp-mode "octave-tmp-mode" "Enter Octave's tmp mode." t)
(setq auto-mode-alist
(cons '("[Oo][Cc][Tt]-....\\.[Tt][Mm][Pp]$" . tmp-mode)
auto-mode-alist))
The tmp mode is the normal text mode with one exception: If you finished
editing by pressing C-x # the buffer is killed. So octave can delete the file.
If you want to run Octave in a special shell mode under Emacs you must also
add the following line to .emacs:
(require 'octave)
There is also another octave shell mode, which is normally part of
Octave. The file is called octave.el. I do not use it, because it created
a lot of problems on my system AND it won't work correctly.
For example your .emacs file should look like this:
(setq load-path (append '("h:/apps/science/octave/lisp") load-path))
(require 'octave)
(autoload 'octave-mode "octave-mode" "Enter Octave mode." t)
(setq auto-mode-alist (cons '("\\.[Mm]$" . octave-mode) auto-mode-alist))
(defun my-octave-mode-hook ()
(setq fill-column 76)
(auto-fill-mode 1))
(setq octave-mode-hook 'my-octave-mode-hook)
(setq octave-prog-filename "h:/apps/science/octave/octave.exe")
(autoload 'octave-tmp-mode "octave-tmp-mode" "Enter Octave's tmp mode." t)
(setq auto-mode-alist
(cons '("[Oo][Cc][Tt]-....\\.[Tt][Mm][Pp]$" . octave-tmp-mode)
auto-mode-alist))
Dynamic Loading of C++ Functions
--------------------------------
This port now supports the dynamic loading. Use the script MAKE-OCTFILE to
compile your scripts EVERY time you installed a new version of Octave! The
script MAKE-OCTFILE is created by INST-OCTAVE.
For example:
cd dlfcn\examples
make-octfile hello.cc
and add the path '.../dlfcn/examples' to Octave's LOADPATH; start Octave and
type 'hello (1,2,3)'.
You can find examples in the directories '.../dlfcn/examples' and
'scripts/image/codecs'.
Images
------
Octave for OS/2 uses the excellent PM View. If you want to use a different
viewer or if your PM View is installed in directory other then
h:\apps\graphics\pmview, set the environment variable OCTAVE_IMAGE_VIEWER.
You can use the environment variable OCTAVE_IMAGE_VIEWER_OPT for specifying
command line options: For example:
SET OCTAVE_IMAGE_VIEWER=c:\pmview\pmview.exe
SET OCTAVE_IMAGE_VIEWER_OPT=/WPos(,,,,ForAct)
For loading and saving images Octave uses now the DLFCN feature. Octave can
read and write BMP, PNM, IMG formats and write Postscript.
MKFIFO
------
The mkfifo command is now supported! You can use Octave's mkfifo command
to create a named pipe for communication with another program (local or
in a LAN). There is also a utility called mkfifo, which can be used for
creating, removing, listing named pipes, you have created with mkfifo.
The names of the pipes must start with '\PIPE' or with '/PIPE'. If you want
access to a pipe on another computer in your LAN you must prepend
'\\HOSTNAME', where HOSTNAME stands for the name of the computer.
For example:
1) Start octave.
2) Open an OS/2 window.
3) Run mkfifo \PIPE\TEST
4) Type 'echo abcdef >\PIPE\TEST' in the OS/2 window
5) In Octave execute the following commands:
fid = fopen ("/PIPE/TEST", "r");
fgets (fid)
fclose (fid);
6) Run mkfifo -d \PIPE\TEST in the OS/2 window
To speed up the execution of the first mkfifo command you can add the
following in your STARTUP.CMD:
detach [DRIVE:]\[PATH]\nmpserv --noexit
Known Limitations, Modifications and Bugs
-----------------------------------------
1) fork is not supported, use spawn instead. Compare the script file popen2.m
with the original version (popen2.org).
2) dup2 has been renamed to _dup2
Comments, Bugs, Problems, Ideas, ...
------------------------------------
If you have any problem installing or using this port, let me know!
If have any idea to make octave for OS/2 a better program, send me a mail.
Also any comments are welcome.
And thanks for all your nice mails i received, and thanks to all of you
helping me to remove the bugs.
My email addresses are:
INTERNET: gebhardt @ crunch . ikp . physik .tu - darmstadt . de
CompuServe: 100114,1371
**************************************************************************
** NO MAIL FROM INTERNET TO MY COMPUSERVE ADDRESS! **
**************************************************************************
Klaus Gebhardt [TEAM OS/2]
Institut fuer Kernphysik
Technische Hochschule Darmstadt |
hobbes.nmsu.edu/download/pub/os2/apps/math/octave/octa20bs.zip |
This work is licensed under a Creative Commons Attribution 4.0 International License.
Comments
Tae
Fri, 10/05/2019 - 12:18
Permalink
Please provide a local copy
Add new comment