changeset 24163:7ff6daa6b558

doc: use tree view in Doxygen documentation and add README and etc/HACKING. * doc/doxyhtml/Doxyfile.in: New pages README.md and etd/HACKING.md. Further new doxygen documnetation should go into doc/doxyhtml/pages for claity. New options for the tree view: DISABLE_INDEX = YES (default: NO) GENERATE_TREEVIEW = YES (default: NO) * src/main.in.cc: Remove redundand Doxygen documentation. Doxygen now uses README, see below. * README.md: Markdownify and review the content. The content of README is now displayed on the Doxygen start page. * etc/HACKING.md: Markdownify and review the content. Some ideas where presented on the mailing list, see: https://lists.gnu.org/archive/html/octave-maintainers/2017-10/msg00124.html
author Kai T. Ohlhus <k.ohlhus@gmail.com>
date Sun, 22 Oct 2017 00:00:05 +0200
parents 312c00dd723a
children 44f0ad0e3af5
files README.md doc/doxyhtml/Doxyfile.in etc/HACKING.md src/main.in.cc
diffstat 4 files changed, 316 insertions(+), 333 deletions(-) [+]
line wrap: on
line diff
--- a/README.md	Fri Oct 20 12:11:58 2017 -0400
+++ b/README.md	Sun Oct 22 00:00:05 2017 +0200
@@ -1,13 +1,20 @@
-GNU Octave -- a high-level language for numerical computations.
+GNU Octave -- a high-level language for numerical computations     {#mainpage}
+==============================================================
 
 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 a high-level interpreted language, primarily intended
+for numerical computations.  It provides capabilities for the
+numerical solution of linear and nonlinear problems, and for
+performing other numerical experiments.  It also provides extensive
+graphics capabilities for data visualization and manipulation.  GNU
+Octave is normally used through its interactive interface (CLI and
+GUI), but it can also be used to write non-interactive programs.
+The GNU Octave language is quite similar to Matlab so that most
+programs are easily portable.
 
 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
@@ -21,17 +28,17 @@
 
 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/>.
+<https://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
+The latest released version of Octave is always available from
+<https://ftp.gnu.org/gnu/octave/> and 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.
+<https://www.octave.org/download.html>.  The current development
+sources may be found under the Source Code tab on
+[Savannah](https://savannah.gnu.org/projects/octave/).
 
 Installation
 ------------
@@ -43,43 +50,49 @@
 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.
+To compile Octave, you will need a recent version of:
+
+- [GNU Make](https://www.gnu.org/software/make/)
+- [GNU G++](https://gcc.gnu.org/) or another C++11 compiler
+- [GNU Fortran](https://gcc.gnu.org/fortran/), another Fortran 77
+  compiler, or [f2c](http://www.netlib.org/f2c/)
 
-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.
+Octave's Makefiles use features of GNU Make that are not present in
+other versions of make.  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.
 
-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.
+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 detailed installation instructions.
 
 Bugs and Patches
 ----------------
 
-The file BUGS explains the recommended procedure for reporting bugs
-or contributing patches.
+The file `BUGS` explains the recommended procedure for reporting bugs
+on the [bug tracker](http://bugs.octave.org) 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.
+* [Octave's manual](https://www.octave.org/doc/interpreter/) is a
+  comprehensive user guide covering introductive and more advanced
+  topics.
+* [Octave's wiki](https://wiki.octave.org) is a user community page,
+  covering various topics and answering
+  [FAQ](https://wiki.octave.org/FAQ).
+* [Octave's Doxygen](https://www.octave.org/doxygen/) documentation
+  explains the C++ class libraries.
+
+Partially, the up-to-dateness of the documentation is lagging a bit
+behind the development of the software.  If you notice omissions or
+inconsistencies, please report them at our bug tracker.  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
+Up to date information about Octave is available on the WWW at
+<https://www.octave.org>, or ask for help via email
+<help@octave.org>.
--- a/doc/doxyhtml/Doxyfile.in	Fri Oct 20 12:11:58 2017 -0400
+++ b/doc/doxyhtml/Doxyfile.in	Sun Oct 22 00:00:05 2017 +0200
@@ -374,7 +374,9 @@
 # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
 # Note: If this tag is empty the current directory is searched.
 
-INPUT                  = @abs_top_srcdir@/src/ \
+INPUT                  = @abs_top_srcdir@/README.md \
+                         @abs_top_srcdir@/etc/HACKING.md \
+                         @abs_top_srcdir@/src/ \
                          @abs_top_srcdir@/liboctave/ \
                          @abs_top_srcdir@/libinterp \
                          @abs_top_srcdir@/libgui
@@ -486,6 +488,34 @@
 
 HTML_TIMESTAMP         = YES
 
+# If you want full control over the layout of the generated HTML pages it might
+# be necessary to disable the index and replace it with your own. The
+# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
+# of each HTML page. A value of NO enables the index and the value YES disables
+# it. Since the tabs in the index contain the same information as the navigation
+# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+DISABLE_INDEX          = YES
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information. If the tag
+# value is set to YES, a side panel will be generated containing a tree-like
+# index structure (just like the one that is generated for HTML Help). For this
+# to work a browser that supports JavaScript, DHTML, CSS and frames is required
+# (i.e. any modern browser). Windows users are probably better off using the
+# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can
+# further fine-tune the look of the index. As an example, the default style
+# sheet generated by doxygen has an example that shows how to put an image at
+# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
+# the same information as the tab index, you could consider setting
+# DISABLE_INDEX to YES when enabling this option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_TREEVIEW      = YES
+
 #---------------------------------------------------------------------------
 # Configuration options related to the LaTeX output
 #---------------------------------------------------------------------------
--- a/etc/HACKING.md	Fri Oct 20 12:11:58 2017 -0400
+++ b/etc/HACKING.md	Sun Oct 22 00:00:05 2017 +0200
@@ -1,346 +1,304 @@
--*- outline -*-
-
-This file attempts to describe the rules to use when hacking Octave.
-DO NOT put this file into the distribution.
+Hacking Octave
+==============
 
-* 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.
+This file attempts to describe the rules to use when hacking the
+Octave sources cloned from the Savannah source code
+[repository](https://hg.savannah.gnu.org/hgweb/octave/).
+**DO NOT** put this file into the distribution.  These requirements
+do not apply when building from a distribution tarball.
 
-* Quick start
+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.
+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:
+2. Clone the Octave sources:
 
-       hg clone http://www.octave.org/hg/octave
+       hg clone https://www.octave.org/hg/octave
 
-  3. Change to the top-level directory of the Octave source tree and run
-     the bootstrap script:
+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:
+4. Create a build directory, `cd` to it, then run `configure` and
+   `make`, or `make -jX` (to run `X` simultaneous jobs):
 
        mkdir .build
        cd .build
        ../configure
-       make
+       make -j2
 
-** Requirements
+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:
+the maintainer tools we depend upon.  These include:
 
-  - 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/>
+- [Autoconf](https://www.gnu.org/software/autoconf/)
+- [Automake](https://www.gnu.org/software/automake/)
+- [Bison](https://www.gnu.org/software/bison/)
+- [Flex](https://www.gnu.org/software/flex/)
+- [Gnulib](https://www.gnu.org/software/gnulib/)
+- [GNU Make](https://www.gnu.org/software/make/)
+- [gperf](https://www.gnu.org/software/gperf/)
+- [Gzip](https://www.gnu.org/software/gzip/)
+- [Libtool](https://www.gnu.org/software/libtool/)
+- [Mercurial](https://www.mercurial-scm.org/)
+- [Perl](https://www.cpan.org/)
+- [Rsync](https://samba.anu.edu.au/rsync/)
+- [Tar](https://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.
+In addition to these maintainer tools, Octave makes use of many
+external libraries and packages.  See `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
+Later, after synchronizing from the repository, a plain `make` should
 be sufficient.
 
-** First clone
+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:
+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
+  <https://www.octave.org/download.html>
 
-After cloning Octave, you will need to run the bootstrap script:
+After cloning Octave, you will need to run the `bootstrap` script:
 
-  $ ./bootstrap
+    ./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.
+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:
+source tree, then pass the name of the directory containing
+`gnulib-tool` to the `bootstrap` script using the option:
 
-  --gnulib-srcdir=DIRNAME
+    --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).
+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.
+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 of the Octave repository, 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.
+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:
+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
+    mkdir .build
+    cd .build
+    ../configure
+    make -j2
+    make check
 
-At this point, there should be no difference between your working tree
-and the currently visited hg revision:
+The `-j2` after the first `make` call means, that two jobs run
+simultaneously.  This number may be increased depending on your
+system.  At this point, there should be no difference between your
+working tree and the currently visited hg revision:
 
-  $ hg diff
+    hg diff
 
 should output no difference.
 
-** Coding style
+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
+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
+<https://wiki.octave.org/Contribution_guidelines>.
 
-* Bugs and patches
+Bugs and patches
+----------------
 
 See the file BUGS in this directory for more guidance on reporting bugs
 and preparing patches.
 
-* Code layout
+Source code directory layout
+----------------------------
 
 An overview of the directory layout of Octave's source files:
 
-  build-aux     -- scripts which support the build process
+- `build-aux`
+     scripts which support the build process.
 
+- `doc`
+     Texinfo and Doxygen documentation for Octave.
 
-  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).
 
-  etc           -- miscellaneous files, such as this HACKING howto
-
+- `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.
 
-  examples      -- some example files (mkoctfile and mex samples, old class
-                   programming interface)
-
+- `libgnu`
+     gnulib sources that we use.  The files here are copied here from
+     the gnulib directory by the `bootstrap` script.
 
-  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.
+- `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.
 
-
-  libgnu        -- gnulib sources that we use.  The files here are
-                   copied here from the gnulib directory by the
-                   bootstrap script.
+- `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.
 
 
-  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
+- `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.
 
-    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
+- `m4` m4 scripts used by configure during the build process.
 
-      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
+- `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
 
-    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
+- `src`
+     code for the actual executables that are created.  This includes
+     `octave`, `octave-cli`, `octave-gui`, as well as `mkoctfile`.
 
-    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
+- `test`
+     tests for the interpreter.
+  - `*.tst`
+       fixed tests for the interpreter.
+  - `fntests.m`
+       script to run function tests embedded in C++ and .m files.
 
 
 ################################################################################
@@ -361,7 +319,7 @@
 
 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/>.
+<https://www.gnu.org/licenses/>.
 
 
 This file was adapted for Octave from the HACKING file that is part of
@@ -383,4 +341,4 @@
   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/>.
+  along with this program.  If not, see <https://www.gnu.org/licenses/>.
--- a/src/main.in.cc	Fri Oct 20 12:11:58 2017 -0400
+++ b/src/main.in.cc	Sun Oct 22 00:00:05 2017 +0200
@@ -417,21 +417,3 @@
 
   return retval;
 }
-
-/*!
-@mainpage Source code documentation for GNU Octave
-
-GNU Octave is a high-level language, primarily intended for numerical
-computations.  It provides a convenient interactive command line
-interface for solving linear and nonlinear problems numerically, and
-for performing other numerical experiments.  It may also be used as a
-batch-oriented language for data processing.
-
-GNU Octave is free software. You may redistribute it and/or modify it
-under the terms of the <a href="http://www.gnu.org/licenses/">GNU
-General Public License</a> as published by the Free Software Foundation.
-
-This is the developer documentation for Octave's own source code. It is
-intended to help for hacking Octave. It may also be useful for
-understanding the Octave API when writing your own .oct files.
-*/