autogen_back

AutoGen   Version 5.8.6
AutoOpts   Version 27.4

Main
AutoGen
Pages

Home
Announce
FAQ
docs
XML Defs
testimonials
downloads

Automated
Options

AutoOpts
Comparison
Man example
Redistribute
Licensing
local use
using getopt

GCC's
Fixincludes

fixincludes

Automated
FSM

description
example
usagefsm

Addons
addon

Project GNU
Home Page

Automated
XDR

xdr project

i

Announcement for October, 2006

5.8.6

AutoOpts Option Naming Conflicts
A new program attribute guard-option-names has been added to ensure that if there are any conflicts, then the conflicting define will be #undef-ed. If you specify this attribute and if there are conflicting #define-s on a particular platform, a #warn-ing will be issued. That warning can be suppressed by adding -DNO_OPTION_NAME_WARNINGS to the compile command.

version-compare
Debugging output was left in the released product. The binary equivalent of a version number is now printed only if the tracing level is at "expression" or higher.

addons
I've started a separate hierarchy for various AutoGen add-on's, instead of trying to list them all on the top page. This got triggered by my adding a mechansim for dispatching named commands. See the add-on page, please. :)

stricter aliasing
Andreas Schwab very kindly pointed out places where strict aliasing rules were violated and suggested many of the fixes. Most importantly from a user's point of view is that the emitted AutoOpts macros now use a union to access a multi-purpose field in the option description structure. Old code should still work because there is a #define that maps the old field name pzLastArg to the equivalent new name, optArg.argString

sys/mman.h
This header is now included conditionally.

Announcement for August, 2006

5.8.5

ag-fprintf
This function will allow you to format and emit text into a suspended output stream. If the first argument is an integer, then the output stream that many entries back into the output stack will be used (see out-push-new and out-pop). If the first argument is a string, it must name a suspended output stream (see out-suspend and out-resume).

string tables
Sometimes, it is really handy to be able to stuff strings into a const character array and know the byte offset to the start of that string. For example, it took a few minutes to produce this from the string, "that was the week that was":
static const char scribble[18] =
    "that\0" "was\0"  "the\0"  "week\0";

#define STRING_CT 6

const char *ap[7] = {
    scribble + 0,
    scribble + 5,
    scribble + 9,
    scribble + 13,
    scribble + 0,
    scribble + 5,
    NULL };

notice that duplicates have been removed.

(version-compare opcode autogen-version "5.8.5")
You can now compare version strings in your template and definitions files.

the #assert directive
This directive has been activated. If the text after the assert keyword is either a backquoted shell script or a scheme expression, it will be evaluated. If the result is an empty string, a zero or text that starts with 'N' (no) or 'F' (false), the autogen will abort.

pseudo macro suffix specifications
have been enhanced. You may now use a Scheme expression to construct the formatting string. e.g., this:
h=(begin
    (define f-name (string-append (getenv "incdir") "/%s-hdr.%s"))
    (shellf
    "d=`dirname %s`
    test -d ${d} || mkdir -p $d || die cannot mkdir $d"
    f-name)
    f-name
  )
will get the value of "incdir" from the environment and append the string "/%s-hdr.%s" to construct the output file name format for the "h" suffix. If the environment variable contained, for example, "my-include", the above would ensure that the directory "my-include" pre-existed and the suffix formatting string would be "my-include/%s-hdr.%s".

AutoFSM has been released
It includes a new template, att-fsm.tpl that will produce FSM diagrams using the AT&T Research FSM tools.

Sometimes DOS cannot rename a file
The testing depended upon being able to remove or rename directories that it created. This is a problem on DOS. So, the tests will now empty a directory if it cannot be removed or renamed.

bare Windows
NTP is migrating to using AutoOpts. However, they run on bare windows without Cygwin. That means some of the features of AutoOpts must be suppressed in the libopts library (viz., running usage text through a pager and emitting help text into shell script option processing code). These features are suppressed if _WIN32 is defined during the compilation of libopts.

top  Viewable With Any Browser  Valid XHTML 1.0!


AutoGen, AutoOpts, columns, getdefs, AutoFSM, AutoXDR and these web pages copyright (c) 1999-2002 Bruce Korb, all rights reserved.

Return to GNU's home page.

Please send FSF & GNU inquiries & questions to gnu@gnu.org. There are also other ways to contact the FSF.

Please send comments on these web pages to webmasters@www.gnu.org, send other questions to gnu@gnu.org.

This article, Copyright © 2000-2002 by Bruce Korb

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. Last modified: Sun Oct 1 12:59:14 PDT 2006