|
|
i |
|
Announcement for May, 2013
5.17.4
- set membership options
- A new function will allocate a string and insert the names of the
bits set in the option (see optionMemberList(3-libopts)).
The syntax of the bit specifications is also now more forgiving.
- here strings
- A leading-tab-stripped "here string" will also strip a leading backslash,
if it precedes a space or tab character. Thus, here strings may include
lines that start with white space and their content will be clear to
the reader of the source code.
- ChangeLog
- The "ChangeLog" file in the distribution is now derived from GIT.
Announcement for March, 2013
5.17.3
- usage paragraphs
- If an AutoOpt-ed project specifies the usage text for --help
output, and if internationalization is active, then the text will be
emitted a paragraph at a time. This makes it easier for translators.
The paragraphing algorythm used at run time is also used to emit
the xgettext-able dummy code.
- autotools
- some auto-retooling was done to catch up with current releases
Announcement for February, 2013
5.17.2
- early signals
- Autogen tries to catch most signals. This is done so that it
can emit appropriate messages before dying. However, SIGPROF
is often signaled extremely early, before initialization is complete.
So, two fixes:
SIGPROF is now exempt from capture, and
the cleanup code will do nothing when the processing state is still
in the initialization phase
- AutoGen Definition Directives
- Invalid directives can cause a seg fault.
AutoGen recognizes all C directives, ignores some and
provides a few of its own. Invalid directives are now
warned about and otherwise ignored properly.
- for-each main procedure
- These procedures may now be specified as processing
standard input as a data file instead of being replacement
operands. Users can always have "stdin" treated as data by using
a single hyphen on the command line.
- internationalization
- The translatable strings were not very.
The stuff was reworked so that usage text can be constructed
in English, specified as the full usage text and then
readily translated a paragraph at a time. Consequently,
larger blocks of help text are now broken down into paragraphs
when NLS support has been specified. These paragraphs are
emitted into an xgettext extractable form so translators have
matching text to work from.
- doxygen support
- The option, enumeration and bitmap templates have support
for adding definitions to Doxygen documentation groups.
Setting the attribute addtogroup to mygroup
will surround the generated code with:
/** @addtogroup mygroup
* @{
*/
[...surrounded code...]
/** @} */
Announcement for January, 2013
5.17.1
- File Formats
- AutoOpts automatically supports parsing options from configuration
files (AKA "rc files" or "ini files"). Traditionally, there is a man
page written up to describe these files. In support of that tradition,
three templates have been added to the collection of option handling
templates. These will emit boiler plate documentation on the various
formats accepted by the configuration file parsing code, plus the
"doc" stanzas for the options that are recognized in these files.
- build issues
- Adjustments for various build environments were made.
Announcement for December, 2012
5.17
- autogen for loop
- It turns out to be difficult to detect gaps in a sparse
array of string values. To support detecting them, a new
scheme function has been created: (found-for?)
- guile.m4
- Guile supplies a configure script macro for detecting the
compile and link options required to use Guile. It has some
undocumented infrastructure dependencies that I happened to not
need on my development platform. Other platforms need it.
The infrastructure was added.
- Guile and LD_LIBRARY_PATH
- Guile fiddles it, wrecking the normal ld search path causing programs
loaded by autogen to link against the wrong libraries. Pending a proper
fix, autogen will erase LD_LIBRARY_PATH for Guile beyond version 2.0.1.
- Bit fiddling templates
- Enumerations and bit masks have been integrated.
str2enum will manage enumerations and converting these
values backand forth between string and binary representations.
str2mask will layer bit mask management on top of that.
You will be able to get the string version of a collection of bits
so a human eyeball can decipher it, and you will be able to convert
such a string into the binary mask.
- Guile Version Checking
- Problems have cropped up in version mismatch issues.
Therefore, henceforth AutoGen will get the Guile version from libguile
at startup. It will choke and die if the major/minor version numbers
do not match the burned in version gotten at configure time.
- shell script required options
- If a "min" count value has been specified, the emitted code will now
verify that the option appears that minimum number of times.
Announcement for August, 2012
5.16.2
- Evade Guile bug
- An ancient version of Guile on a BSD platform mishandles the "set!"
function. Also, for 6+ year old Guile, the code was referencing an
obsolete name of a string.
Announcement for June, 2012
5.16.1
- Licensing fixes
- Some incorporated files were still marked "GPL" instead of "LGPL".
- Memory searching bug
- A limit address used in a new scan memory macro was misused.
Announcement for May, 2012
5.16
- die-code
- A new AutoOpts attribute that specifies creating three new
functions: vdie(), die() and fserr().
The "die" functions take an exit code as the first argument, followed by a
formatting argument, and then arguments for that format. fserr()
takes an operation string and a file-operated-on string and presumes that
errno is set properly. None of these return.
- -MP supports clean rules
- The -M option supports several suboptions, similar to the
ones chosen by GCC. -MP is now supported and it is used
to mean creating a phoney target for removing the build products (the
generated files, including the generated dependency file).
Here's an example, for autogen options:
# Makefile dependency file created by: -*- Mode: Makefile -*-
# /u/ROOT/usr/local/bin/autogen
# with the following command line arguments:
# -L/u/bkorb/ag/ag/autoopts/tpl \
# -L/u/bkorb/ag/ag/autoopts/tpl \
# -MFstamp-opts \
# -MP \
# opts.def
AUTOGEN_stamp_opts_TList = \
opts.h \
opts.c
AUTOGEN_stamp_opts_SList = \
opts.def \
/u/bkorb/ag/ag/autoopts/tpl/options.tpl \
/u/bkorb/ag/ag/autoopts/tpl/optlib.tlib \
/u/bkorb/ag/ag/autoopts/tpl/tpl-config.tlib \
/u/bkorb/ag/ag/autoopts/tpl/gpl.lic \
/u/bkorb/ag/ag/autoopts/tpl/opthead.tlib \
/u/bkorb/ag/ag/autoopts/tpl/optcode.tlib \
/u/bkorb/ag/ag/autoopts/tpl/optmain.tlib
stamp-opts : $(AUTOGEN_stamp_opts_SList)
$(AUTOGEN_stamp_opts_TList) : stamp-opts
@:
.PHONY : clean-stamp-opts
clean-stamp-opts :
rm -f stamp-opts $(AUTOGEN_stamp_opts_TList)
|