Observations on working with Octave C++ code

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Observations on working with Octave C++ code

Daniel Sebald
Some observations of working with Octave C++ code...

1) I came across the "doxygen documentation", e.g.,

http://octave.sourceforge.net/doxygen/html/classchar_matrix.html

It is a nice summary of the classes and member functions, including a
graphical hierarchy of parents and children classes along with fast
links to other classes and member definitions.  I found this to be
hugely helpful in speeding up the time it takes to understand Octave
innards without having to hunt and peck for definitions in the actual
source files.  (Why this documentation falls under Octave-Forge, I'm not
exactly sure.  I mean, Octave-Forge uses Octave and doesn't concern
itself with the insides of core Octave.  And how this documentation
is/was generated, I'm not sure either.)

I suggest putting a link to this documentation somewhere in the
developer page

http://www.gnu.org/software/octave/get-involved.html

or wiki

http://wiki.octave.org/Projects

E.g., "A good place to start for learning the structure of Octave's C++
code is this dOxygen documentation
http://octave.sourceforge.net/doxygen/html/index.html."

Generally, the C++ code looks nicely organized.  It takes a bit of time
to understand what a member variable or function stands for, but
eventually it becomes evident.

2) Along that same lines, one could include, e.g.,

"Another good reference for C++ concepts is http://www.cplusplus.com/,
and in particular the documentation for the often-used C++ strings
library http://www.cplusplus.com/reference/string/."

3) I've found that building Octave after just tweaking the code in some
C++ file is quite slow.  Is it simply the case that the linking is so
big?  Are there a lot of libraries that have to be built?  That one
minute or so of sitting while Octave assembles can really add up in
terms of developer's time.  I try to multitask by doing something like
reading email while Octave is linking, but that sort of interrupts the
train of thought.

Dan
Reply | Threaded
Open this post in threaded view
|

Re: Observations on working with Octave C++ code

Søren Hauberg

On Jul 29, 2012, at 7:51 PM, Daniel J Sebald wrote:

> Some observations of working with Octave C++ code...
>
> 1) I came across the "doxygen documentation", e.g.,
>
> http://octave.sourceforge.net/doxygen/html/classchar_matrix.html
>
> It is a nice summary of the classes and member functions, including a graphical hierarchy of parents and children classes along with fast links to other classes and member definitions.  I found this to be hugely helpful in speeding up the time it takes to understand Octave innards without having to hunt and peck for definitions in the actual source files.  (Why this documentation falls under Octave-Forge, I'm not exactly sure.  I mean, Octave-Forge uses Octave and doesn't concern itself with the insides of core Octave.  And how this documentation is/was generated, I'm not sure either.)

I agree, the doxygen stuff is nice. I put it o Octave-Forge quite some years ago as there was no agreement if it was a good idea to have this or not; the main argument (as I remember) was that having it on the Octave web site might be interpreted as the C++ API was in a more stable state than it really is.

To actually generate this documentation, look for the 'Doxygen' file in the Octave-Forge repository.

Søren