[Top] [Contents] [Index] [ ? ]

Footnotes

(1)

Which is unfortunately quite uncommon in the authors experience.

(2)

Precondition: a boolean expression which must be true if the operation is to succeed. For example the `sort(int *v, int n)' might have have precondition that `v != NULL && n >= 0'.

(3)

Postcondition: a boolean expression that must be true if the operation is correct (and the precondition was true on entry).

(4)

And about 60 reset cycles where the machine went off into hyperspace.

(5)

This allows a variable number of arguments to C preprocessor macros.

(6)

If you don't want a core dump then look at stopping the core dumps with ulimit rather than changing the handler.

(7)

Side-effects include such operations as input/output or assignments, e.g. `x++'.

(8)

Side-effects include operations like input/output or assignments.

(9)

This was suggested by Phil Blecker.

(10)

ANSI C does not allow variable declarations at the beginning of loops unlike C++. The `Q.h' macros get around this by starting each loop with a new scope.

(11)

This uses yet another GNU CC extension, however since we are already using statement expressions we might as well use `typeof' as well.

(12)

In the fullness of time, we may integrate these routines in here.

(13)

Famous last words I know but: (2^64)/(1e9*60*60*24*365) = 584 yrs.

(14)

Note you need to install the GLOBAL package first. This is installed by default on FreeBSD systems. If you do not have the GLOBAL package read on.

(15)

The name `nana-sfg' stands for either Nana Short Form Generator or Nana Science Fiction Generator. Personally I prefer the later derivation.

(16)

This is the traditional assert which uses `fprintf' and `exit' in a macro. The BSD `assert' macro used in FreeBSD is a bit smarter and calls a function to do the message printing and exiting. Note that the real cost of this function is even higher since we are only measuring the code space requirements, not the space required for the message strings.

(17)

If possible we should replace the call to `nm' with a call to something which can print all the symbols for a dynamically linked library. Unfortunately GDB gets upset if you try to set a breakpoint for a function that does not exist. I suppose we could use gdb to print the symbol list out.

(18)

Of course you also need to use the gdb commands generated by the `nana' command, perhaps using `nana-clg'.

(19)

Gordon Matzigkeit contributed some of the ideas presented here and raised this problem.

(20)

Or add a `--with-nana' flag to configure that does the opposite.



This document was generated by Marius Tomaschewski on February, 12 2004 using texi2html