Mercurial > octave
changeset 24162:312c00dd723a
use markdown for README and etc/HACKING files
* README.md: Rename from README.
* etc/HACKING.md: Rename from etc/HACKING.
* Makefile.am (README): New dummy rule.
(EXTRA_DIST): Update list.
* configure.ac: Delete "foreign" from list of automake options.
* bootstrap.conf: Check for README.md, not README.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 20 Oct 2017 12:11:58 -0400 |
parents | 48cf0f4cc7c8 |
children | 7ff6daa6b558 |
files | Makefile.am README README.md bootstrap.conf configure.ac etc/HACKING etc/HACKING.md |
diffstat | 7 files changed, 481 insertions(+), 480 deletions(-) [+] |
line wrap: on
line diff
--- a/Makefile.am Sat Oct 21 14:35:58 2017 -0700 +++ b/Makefile.am Fri Oct 20 12:11:58 2017 -0400 @@ -120,7 +120,7 @@ COPYING \ INSTALL \ NEWS \ - README \ + README.md \ run-octave.in \ $(BUILT_DISTFILES) @@ -343,6 +343,13 @@ $(AM_V_at)rm -f bits/stl_algo.h .PHONY: nonexistent-file +## We have README.md, not README. This dummy rule prevents automake +## from complaining that we are not following the GNU coding standards. +## We don't generate README from README.md since it is probably more +## confusing to have both than to just have README.md. + +README: README.md + .gdbinit: etc/gdbinit @$(gdbinit_install_rule)
--- a/README Sat Oct 21 14:35:58 2017 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,85 +0,0 @@ -GNU Octave -- a high-level language for numerical computations. - -Copyright (C) 1996-2017 John W. Eaton - -Overview --------- - -GNU 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. - -GNU 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 3 of the License, or -(at your option) any later version. - -GNU 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 -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Octave; see the file COPYING. If not, see -<http://www.gnu.org/licenses/>. - -Availability ------------- - -The latest released version of Octave is always available via -anonymous ftp from ftp.gnu.org and its many mirror sites around the -world. You may also find links to binary distributions at -http://www.octave.org/download.html. The current development sources -may be found on Savannah (http://savannah.gnu.org/projects/octave) -under the Source Code tab. - -Installation ------------- - -Octave requires approximately 1.4 GB of disk storage to unpack and -compile from source (significantly less, 400 MB, if you don't compile -with debugging symbols). Once installed, Octave requires -approximately 350 MB of disk space (again, considerably less, 70 MB, -if you don't build shared libraries or the binaries and libraries do -not include debugging symbols). - -To compile Octave, you will need a recent version of GNU Make. You -will also need a recent version of g++ or another ANSI C++ compiler. -You will also need a Fortran 77 compiler or f2c. If you use f2c, you -will need a script like fort77 that works like a normal Fortran -compiler by combining f2c with your C compiler in a single script. - -YOU MUST HAVE GNU MAKE TO COMPILE OCTAVE. Octave's Makefiles use -features of GNU Make that are not present in other versions of make. -GNU Make is very portable and easy to install. - -See the notes in the files INSTALL.OCTAVE and the system-specific README -files in the etc directory of the Octave source distribution for more -specific installation instructions. - -Bugs and Patches ----------------- - -The file BUGS explains the recommended procedure for reporting bugs -or contributing patches. - -Documentation -------------- - -Octave's manual has been revised for version 3.4, but it is lagging a -bit behind the development of the software. In particular, there is -currently no complete documentation of the C++ class libraries. If -you notice omissions or inconsistencies, please report them on the -bug tracker at http://bugs.octave.org. Specific suggestions for ways -to improve Octave and its documentation are always welcome. Reports -with patches are even more welcome. - -Additional Information ----------------------- - -Up to date information about Octave is available on the WWW at the -URL http://www.octave.org, including archives of the help, bug, and -maintainers mailing lists. - - -Last updated: Fri, 10 Jun 2011 14:02:32 EDT
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README.md Fri Oct 20 12:11:58 2017 -0400 @@ -0,0 +1,85 @@ +GNU Octave -- a high-level language for numerical computations. + +Copyright (C) 1996-2017 John W. Eaton + +Overview +-------- + +GNU 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. + +GNU 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 3 of the License, or +(at your option) any later version. + +GNU 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 +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Octave; see the file COPYING. If not, see +<http://www.gnu.org/licenses/>. + +Availability +------------ + +The latest released version of Octave is always available via +anonymous ftp from ftp.gnu.org and its many mirror sites around the +world. You may also find links to binary distributions at +http://www.octave.org/download.html. The current development sources +may be found on Savannah (http://savannah.gnu.org/projects/octave) +under the Source Code tab. + +Installation +------------ + +Octave requires approximately 1.4 GB of disk storage to unpack and +compile from source (significantly less, 400 MB, if you don't compile +with debugging symbols). Once installed, Octave requires +approximately 350 MB of disk space (again, considerably less, 70 MB, +if you don't build shared libraries or the binaries and libraries do +not include debugging symbols). + +To compile Octave, you will need a recent version of GNU Make. You +will also need a recent version of g++ or another ANSI C++ compiler. +You will also need a Fortran 77 compiler or f2c. If you use f2c, you +will need a script like fort77 that works like a normal Fortran +compiler by combining f2c with your C compiler in a single script. + +YOU MUST HAVE GNU MAKE TO COMPILE OCTAVE. Octave's Makefiles use +features of GNU Make that are not present in other versions of make. +GNU Make is very portable and easy to install. + +See the notes in the files INSTALL.OCTAVE and the system-specific README +files in the etc directory of the Octave source distribution for more +specific installation instructions. + +Bugs and Patches +---------------- + +The file BUGS explains the recommended procedure for reporting bugs +or contributing patches. + +Documentation +------------- + +Octave's manual has been revised for version 3.4, but it is lagging a +bit behind the development of the software. In particular, there is +currently no complete documentation of the C++ class libraries. If +you notice omissions or inconsistencies, please report them on the +bug tracker at http://bugs.octave.org. Specific suggestions for ways +to improve Octave and its documentation are always welcome. Reports +with patches are even more welcome. + +Additional Information +---------------------- + +Up to date information about Octave is available on the WWW at the +URL http://www.octave.org, including archives of the help, bug, and +maintainers mailing lists. + + +Last updated: Fri, 10 Jun 2011 14:02:32 EDT
--- a/bootstrap.conf Sat Oct 21 14:35:58 2017 -0700 +++ b/bootstrap.conf Fri Oct 20 12:11:58 2017 -0400 @@ -174,7 +174,7 @@ ## with building the rest of Octave, and INSTALL, which is linked from ## gnulib/doc/INSTALL by the bootstrap script. - for f in NEWS README COPYING CITATION; do + for f in NEWS README.md COPYING CITATION; do if ! test -f $f; then echo "required file $f is missing" 2>&1 exit 1
--- a/configure.ac Sat Oct 21 14:35:58 2017 -0700 +++ b/configure.ac Fri Oct 20 12:11:58 2017 -0400 @@ -65,7 +65,7 @@ AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_MACRO_DIR([m4]) -AM_INIT_AUTOMAKE([1.14 foreign -Wno-portability -Wno-override tar-ustar subdir-objects dist-lzip dist-xz]) +AM_INIT_AUTOMAKE([1.14 -Wno-portability -Wno-override tar-ustar subdir-objects dist-lzip dist-xz]) ## Add the option to enable silent rules and make silent rules the ## default behavior. Available since Automake 1.11 and included by
--- a/etc/HACKING Sat Oct 21 14:35:58 2017 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,392 +0,0 @@ --*- outline -*- - -This file attempts to describe the rules to use when hacking Octave. -DO NOT put this file into the distribution. - -* Working from the repository - -These notes are intended to help people working on sources cloned from -the savannah source code repository. -These requirements do not apply when building from a distribution tarball. - -* Quick start - - 1. Install all the required dependencies. Precisely how to do that - depends on what type of system you are using. There are more - details below. - - 2. Clone the Octave sources: - - hg clone http://www.octave.org/hg/octave - - 3. Change to the top-level directory of the Octave source tree and run - the bootstrap script: - - cd octave - ./bootstrap - - 4. Create a build directory, cd to it, then run configure and make: - - mkdir .build - cd .build - ../configure - make - -** Requirements - -We've opted to keep only the highest-level sources in the repository. -This eases our maintenance burden, (fewer merges, etc.), but imposes -more requirements on anyone wishing to build from the just-cloned -sources. For example, you have to use the latest stable versions of -the maintainer tools we depend upon, including: - - - Autoconf <http://www.gnu.org/software/autoconf/> - - Automake <http://www.gnu.org/software/automake/> - - Bison <http://www.gnu.org/software/bison/> - - Flex <http://www.gnu.org/software/flex/> - - Gnulib <http://www.gnu.org/software/gnulib/> - - GNU Make <http://www.gnu.org/software/make/> - - gperf <http://www.gnu.org/software/gperf/> - - Gzip <http://www.gnu.org/software/gzip/> - - Libtool <http://www.gnu.org/software/libtool/> - - Mercurial <http://mercurial.selenic.com/> - - Perl <http://www.cpan.org/> - - Rsync <http://samba.anu.edu.au/rsync/> - - Tar <http://www.gnu.org/software/tar/> - -In addition to these maintainer tools, Octave makes use of many external -libraries and packages. See the file doc/interpreter/install.txi for the -complete list of required and optional dependencies. - -Only building the initial full source tree will be a bit painful. -Later, after synchronizing from the repository, a plain `make' should -be sufficient. - -** First clone - -If you are reading these notes, you may have already managed to clone -this package from the repository. For the record, you will find all the -relevant information on downloading sources at: - - http://www.octave.org/download.html - -After cloning Octave, you will need to run the bootstrap script: - - $ ./bootstrap - -This script will examine the source tree and generate some Makefile -fragments, then run autotools scripts to generate Makefile.in files from -Makefile.am files and create the configure script. The bootstrap script -comes from gnulib, but is kept in the Octave source archive. It should -be updated from the gnulib sources as necessary. - -If you have a copy of gnulib in some directory apart from the Octave -source tree, then pass the name of the directory containing gnulib-tool -to the bootstrap script using the option: - - --gnulib-srcdir=DIRNAME - -If you have downloaded gnulib directly, DIRNAME will be the directory where -gnulib was unpacked. If you have installed gnulib using a package -manager, DIRNAME is likely to be /usr/bin or /usr/local/bin(where the -gnulib-tool script resides). - -By using an external gnulib directory, you can share a single gnulib source -tree among several projects. Since 2011, the gnulib sources are a Mercurial -subrepository, so they will be automatically updated to the -corresponding Mercurial revision if you update the working directory to -a past revision not too far in the past. - -Additional options besides --gnulib-srcdir can be passed to bootstrap and -they will be forwarded without modification to the gnulib bootstrap script. - -Once the bootstrap script completes successfully, you may configure and -build Octave. We recommend that you build Octave in a separate -directory tree from the sources. For example, if you have just finished -running the bootstrap script in the top-level source directory, run the -following commands to create a build tree, configure, and build Octave: - - $ mkdir .build - $ cd .build - $ ../configure - $ make - $ make check - -At this point, there should be no difference between your working tree -and the currently visited hg revision: - - $ hg diff - -should output no difference. - -** Coding style - -The most important advice is to follow any conventions you detect in the -file being edited. In addition, Octave maintainers have written a lot -on the subject. See http://wiki.octave.org/Contribution_guidelines - -* Bugs and patches - -See the file BUGS in this directory for more guidance on reporting bugs -and preparing patches. - -* Code layout - -An overview of the directory layout of Octave's source files: - - build-aux -- scripts which support the build process - - - doc -- Texinfo documentation for Octave - - - etc -- miscellaneous files, such as this HACKING howto - - - examples -- some example files (mkoctfile and mex samples, old class - programming interface) - - - gnulib -- gnulib subrepo. This is a clone of the gnulib source - tree maintained by the Octave project. The default - branch is identical to the upstream gnulib sources. - There is also an "octave-stable" branch that may - contain changes as needed for the "stable" branch in - the Octave archive. We usually don't want to update - gnulib sources when going from one stable point - release to the next, but we occasionally need to - include small updates. - - - libgnu -- gnulib sources that we use. The files here are - copied here from the gnulib directory by the - bootstrap script. - - - liboctave -- C++ interfaces to the numerical libraries, Fortran - numerical libraries, various OS facilities, and utility - functions - - array the base Array, NDArray, Matrix, and Sparse classes - - external various numerical libraries (mostly Fortran) - - amos bessel functions - - blas-xtra wrappers for blas functions used in Octave - - daspk large scale differential algebraic equation solver - - dasrt differential algebraic equation solver with root finding - - dassl differential-algebraic system solver - - fftpack subroutines for fast fourier transforms - - lapack-xtra wrappers for lapack functions used in Octave - - odepack ordinary differential equation solver - - ordered-qz code for ordering eigenvalues for QZ factorization - - quadpack subroutines for numerical integration - - ranlib random number generators - - slatec-err slatec error handling library - - slatec-fn various special function subroutines - - numeric C++ numerical algorithms and interfaces to the Fortran - algorithms - - operators code for operators that act on base classes (such as Array) - - system OS-related functions - - util utility and miscellaneous functions - - wrappers C++ wrappers for gnulib functions written in C - - libinterp -- the interpreter itself plus lots of infrastructure - around it. Octave's extensive octave_value class - hierarchy for polymorphically handling all Octave - types is defined here. The built-in functions are - also defined here. - - octave-value the octave_value class hierarchy. These are the - container classes that hold various Octave data - types like struct numerical arrays, structure - arrays, and cell arrays. - - parse-tree Classes that define the parse tree for the - interpreter - - corefcn statically linked DEFUN functions (callable from - the scripting langauge) as well as internal C++ - functions used by the interpreter. - - dldfcn dynamically linked DEFUN functions (callable - from the scripting language). If you see "help - foo" telling you that foo is defined in foo.oct, - then foo.cc will be found here and contain the - source code. - - operators definitions and template instantiations for - operators for all possible Octave type - combinations - - template-inst some C++ template instantiations - - - libgui -- the graphical user interface of GNU Octave - - graphics Qt graphics toolkit (OpenGL plotting) - - kb-layouts various files need by the qterminal widget that has - been derived from Konsole - - languages translation files and list of translators - - qterminal Qt terminal widget - - src source files for the GUI - - icons icon files that will be compiled into the - executable via a resource file - - m-editor source files for the m-file editor - - qtinfo source files for the Qt texinfo browser - - - m4 -- m4 scripts used by configure during the build process - - - scripts -- functions written in the Octave language - - @ftp ftp object class - - +containers container classes (Map) - - audio play and record sound files (system dependent) - - deprecated older deprecated functions - - elfun elementary mathematical functions - - general utility functions - - geometry geometry algorithms - - gui User-Interface (UI) functions - - help help subsystem functions - - image image processing - - io input/output functions - - java java/Octave interface - - linear-algebra linear algebra - - miscellaneous stuff that doesn't fit anywhere else - - ode Ordinary Differential Equations - - optimization zero finders and minimizers - - path functions for path manipulation - - pkg the package manager - - plot plotting functions - - polynomial polynomial manipulation - - prefs user-defined preferences - - profiler code profiler for performance - - set set manipulation - - signal signal processing - - sparse sparse matrix support - - specfun special mathematical functions - - special-matrix functions for generating special types of matrices - - startup initialization functions - - statistics statistical functions, distributions, and tests - - strings character string manipulation - - testfun unit testing - - time time and date functions - - - src -- code for the actual executables that are created. This - includes octave, octave-cli, octave-gui, as well as - mkoctfile. - - - test -- tests for the interpreter - - *.tst fixed tests for the interpreter - - fntests.m script to run function tests embedded in C++ and - .m files - ----- -John W. Eaton -jwe@octave.org - -Last updated: Thu, 26 Jan 2017 08:29:19 EST - - -################################################################################ - -Copyright (C) 2009-2017 John W. Eaton - -This file is part of Octave. - -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 3 of the License, 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 -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Octave; see the file COPYING. If not, see -<http://www.gnu.org/licenses/>. - - -This file was adapted for Octave from the HACKING file that is part of -GNU Bison, which contained the following Copyright notice: - - Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009 - Free Software Foundation, Inc. - - This file is part of GNU Bison. - - This program 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 3 of the License, or - (at your option) any later version. - - This program 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 - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etc/HACKING.md Fri Oct 20 12:11:58 2017 -0400 @@ -0,0 +1,386 @@ +-*- outline -*- + +This file attempts to describe the rules to use when hacking Octave. +DO NOT put this file into the distribution. + +* Working from the repository + +These notes are intended to help people working on sources cloned from +the savannah source code repository. +These requirements do not apply when building from a distribution tarball. + +* Quick start + + 1. Install all the required dependencies. Precisely how to do that + depends on what type of system you are using. There are more + details below. + + 2. Clone the Octave sources: + + hg clone http://www.octave.org/hg/octave + + 3. Change to the top-level directory of the Octave source tree and run + the bootstrap script: + + cd octave + ./bootstrap + + 4. Create a build directory, cd to it, then run configure and make: + + mkdir .build + cd .build + ../configure + make + +** Requirements + +We've opted to keep only the highest-level sources in the repository. +This eases our maintenance burden, (fewer merges, etc.), but imposes +more requirements on anyone wishing to build from the just-cloned +sources. For example, you have to use the latest stable versions of +the maintainer tools we depend upon, including: + + - Autoconf <http://www.gnu.org/software/autoconf/> + - Automake <http://www.gnu.org/software/automake/> + - Bison <http://www.gnu.org/software/bison/> + - Flex <http://www.gnu.org/software/flex/> + - Gnulib <http://www.gnu.org/software/gnulib/> + - GNU Make <http://www.gnu.org/software/make/> + - gperf <http://www.gnu.org/software/gperf/> + - Gzip <http://www.gnu.org/software/gzip/> + - Libtool <http://www.gnu.org/software/libtool/> + - Mercurial <http://mercurial.selenic.com/> + - Perl <http://www.cpan.org/> + - Rsync <http://samba.anu.edu.au/rsync/> + - Tar <http://www.gnu.org/software/tar/> + +In addition to these maintainer tools, Octave makes use of many external +libraries and packages. See the file doc/interpreter/install.txi for the +complete list of required and optional dependencies. + +Only building the initial full source tree will be a bit painful. +Later, after synchronizing from the repository, a plain `make' should +be sufficient. + +** First clone + +If you are reading these notes, you may have already managed to clone +this package from the repository. For the record, you will find all the +relevant information on downloading sources at: + + http://www.octave.org/download.html + +After cloning Octave, you will need to run the bootstrap script: + + $ ./bootstrap + +This script will examine the source tree and generate some Makefile +fragments, then run autotools scripts to generate Makefile.in files from +Makefile.am files and create the configure script. The bootstrap script +comes from gnulib, but is kept in the Octave source archive. It should +be updated from the gnulib sources as necessary. + +If you have a copy of gnulib in some directory apart from the Octave +source tree, then pass the name of the directory containing gnulib-tool +to the bootstrap script using the option: + + --gnulib-srcdir=DIRNAME + +If you have downloaded gnulib directly, DIRNAME will be the directory where +gnulib was unpacked. If you have installed gnulib using a package +manager, DIRNAME is likely to be /usr/bin or /usr/local/bin(where the +gnulib-tool script resides). + +By using an external gnulib directory, you can share a single gnulib source +tree among several projects. Since 2011, the gnulib sources are a Mercurial +subrepository, so they will be automatically updated to the +corresponding Mercurial revision if you update the working directory to +a past revision not too far in the past. + +Additional options besides --gnulib-srcdir can be passed to bootstrap and +they will be forwarded without modification to the gnulib bootstrap script. + +Once the bootstrap script completes successfully, you may configure and +build Octave. We recommend that you build Octave in a separate +directory tree from the sources. For example, if you have just finished +running the bootstrap script in the top-level source directory, run the +following commands to create a build tree, configure, and build Octave: + + $ mkdir .build + $ cd .build + $ ../configure + $ make + $ make check + +At this point, there should be no difference between your working tree +and the currently visited hg revision: + + $ hg diff + +should output no difference. + +** Coding style + +The most important advice is to follow any conventions you detect in the +file being edited. In addition, Octave maintainers have written a lot +on the subject. See http://wiki.octave.org/Contribution_guidelines + +* Bugs and patches + +See the file BUGS in this directory for more guidance on reporting bugs +and preparing patches. + +* Code layout + +An overview of the directory layout of Octave's source files: + + build-aux -- scripts which support the build process + + + doc -- Texinfo documentation for Octave + + + etc -- miscellaneous files, such as this HACKING howto + + + examples -- some example files (mkoctfile and mex samples, old class + programming interface) + + + gnulib -- gnulib subrepo. This is a clone of the gnulib source + tree maintained by the Octave project. The default + branch is identical to the upstream gnulib sources. + There is also an "octave-stable" branch that may + contain changes as needed for the "stable" branch in + the Octave archive. We usually don't want to update + gnulib sources when going from one stable point + release to the next, but we occasionally need to + include small updates. + + + libgnu -- gnulib sources that we use. The files here are + copied here from the gnulib directory by the + bootstrap script. + + + liboctave -- C++ interfaces to the numerical libraries, Fortran + numerical libraries, various OS facilities, and utility + functions + + array the base Array, NDArray, Matrix, and Sparse classes + + external various numerical libraries (mostly Fortran) + + amos bessel functions + + blas-xtra wrappers for blas functions used in Octave + + daspk large scale differential algebraic equation solver + + dasrt differential algebraic equation solver with root finding + + dassl differential-algebraic system solver + + fftpack subroutines for fast fourier transforms + + lapack-xtra wrappers for lapack functions used in Octave + + odepack ordinary differential equation solver + + ordered-qz code for ordering eigenvalues for QZ factorization + + quadpack subroutines for numerical integration + + ranlib random number generators + + slatec-err slatec error handling library + + slatec-fn various special function subroutines + + numeric C++ numerical algorithms and interfaces to the Fortran + algorithms + + operators code for operators that act on base classes (such as Array) + + system OS-related functions + + util utility and miscellaneous functions + + wrappers C++ wrappers for gnulib functions written in C + + libinterp -- the interpreter itself plus lots of infrastructure + around it. Octave's extensive octave_value class + hierarchy for polymorphically handling all Octave + types is defined here. The built-in functions are + also defined here. + + octave-value the octave_value class hierarchy. These are the + container classes that hold various Octave data + types like struct numerical arrays, structure + arrays, and cell arrays. + + parse-tree Classes that define the parse tree for the + interpreter + + corefcn statically linked DEFUN functions (callable from + the scripting langauge) as well as internal C++ + functions used by the interpreter. + + dldfcn dynamically linked DEFUN functions (callable + from the scripting language). If you see "help + foo" telling you that foo is defined in foo.oct, + then foo.cc will be found here and contain the + source code. + + operators definitions and template instantiations for + operators for all possible Octave type + combinations + + template-inst some C++ template instantiations + + + libgui -- the graphical user interface of GNU Octave + + graphics Qt graphics toolkit (OpenGL plotting) + + kb-layouts various files need by the qterminal widget that has + been derived from Konsole + + languages translation files and list of translators + + qterminal Qt terminal widget + + src source files for the GUI + + icons icon files that will be compiled into the + executable via a resource file + + m-editor source files for the m-file editor + + qtinfo source files for the Qt texinfo browser + + + m4 -- m4 scripts used by configure during the build process + + + scripts -- functions written in the Octave language + + @ftp ftp object class + + +containers container classes (Map) + + audio play and record sound files (system dependent) + + deprecated older deprecated functions + + elfun elementary mathematical functions + + general utility functions + + geometry geometry algorithms + + gui User-Interface (UI) functions + + help help subsystem functions + + image image processing + + io input/output functions + + java java/Octave interface + + linear-algebra linear algebra + + miscellaneous stuff that doesn't fit anywhere else + + ode Ordinary Differential Equations + + optimization zero finders and minimizers + + path functions for path manipulation + + pkg the package manager + + plot plotting functions + + polynomial polynomial manipulation + + prefs user-defined preferences + + profiler code profiler for performance + + set set manipulation + + signal signal processing + + sparse sparse matrix support + + specfun special mathematical functions + + special-matrix functions for generating special types of matrices + + startup initialization functions + + statistics statistical functions, distributions, and tests + + strings character string manipulation + + testfun unit testing + + time time and date functions + + + src -- code for the actual executables that are created. This + includes octave, octave-cli, octave-gui, as well as + mkoctfile. + + + test -- tests for the interpreter + + *.tst fixed tests for the interpreter + + fntests.m script to run function tests embedded in C++ and + .m files + + +################################################################################ + +Copyright (C) 2009-2017 John W. Eaton + +This file is part of Octave. + +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 3 of the License, 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 +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Octave; see the file COPYING. If not, see +<http://www.gnu.org/licenses/>. + + +This file was adapted for Octave from the HACKING file that is part of +GNU Bison, which contained the following Copyright notice: + + Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009 + Free Software Foundation, Inc. + + This file is part of GNU Bison. + + This program 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 3 of the License, or + (at your option) any later version. + + This program 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 + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>.