Hello,
The beta alpha release (xgawk-3.1.5-beta.20060401)
of the xmlgawk project is now available at SourceForge.
http://sourceforge.net/projects/xmlgawk/
http://sourceforge.net/project/showf...roup_id=133165
This release is based on Arnold Robbins' regular GNU Awk 3.1.5.
Problem reports are supposed to go to xm***********@l ists.sourceforg e.net.
We have three extensions now in the release: XML, PostgreSQL and MPFR.
XML and PostgreSQL are pretty mature; Andrew Schorr uses both in
a production environment. Support for MPFR is only beginning.
Cross-platform portability has improved even further.
Some ancient platforms are unable to make use of dynamic libraries.
In all cases where dynamic libraries failed to work, it was
possible to fall back to static linking.
Building Cygwin DLL extension libraries is still not working.
So, only static linking is supported with Cygwin.
We could use some help from somebody with experience getting
libtool to do this. We had reports that other Windows-like
platforms (Visual Studio, DJGPP, MINGW) would also build
with support for all the extensions, but only after a few changes.
The manual has been updated to reflect all the changes we made
since the alpha release. For a quick first impression see:
http://home.vrweb.de/~juergen.kahrs/...of-an-XML-file
The list of changes (with respect to Arnold's GNU Awk 3.1.5)
has grown since the alpha release:
1. Adds new -l (--load) command-line option to link in a shared library.
This searches for the library using a new AWKLIBPATH environment variable
(with an appropriate default value if none is present in the environment).
And it automatically tries to supply a default suffix appropriate for
shared libraries on the build platform.
2. Adds new -i (--include) command-line option to include gawk source code.
This searches for the gawk code using the existing AWKPATH environment
variable as is currently done for -f arguments. And it automatically tries
to find the file with and without a default .awk suffix.
3. Enhances -f processing to also supply an automatic .awk suffix.
(For each directory in AWKPATH, it first tries to open the file without
a suffix, and then tries with .awk appended.)
4. Adds support for an @include directive in the source code.
This is the same feature provided by the current igawk script.
This works the same way as in igawk (and as in the new -i command-line option).
So the igawk script can be removed and replaced with a symbolic link to
the new gawk binary. This is a little more powerful than igawk @include
because it can automatically add the .awk suffix.
5. Adds support for an @load directive in the source code to load a shared library.
This does the same thing as the new -l command-line option.
6. There are internal enhancements to provide better support for loading shared libraries.
7. Several bug fixes are included that have not yet been incorporated into regular gawk.
In particular, some problems with displaying large integers have been fixed.
8. A packaging subdirectory has been added to contain platform-specific packaging tools.
Currently, it contains only an RPM spec file xgawk.spec.
This can be used to build an RPM easily from the tarball (possibly as simple as
rpmbuild -tb xgawk.tar.gz depending on your configuration).
We would welcome submissions of packaging tools for other platforms.
The installation process of Extensible GNU Awk has also added some new options.
Note that installing xgawk will not in any way interfere with a previous
installation of gawk: all the installed files have distinct names from the
files installed by regular gawk. So both can coexist without disturbing each other.
1. The --enable-switch of regular gawk option is enabled by default.
2. The option --enable-gawk is new, its default is no.
Enabling this option will install links to provide gawk, awk, and
igawk executables in addition to xgawk. This option is useful in
case you do not want to install regular gawk. But if regular gawk
has already been installed before xgawk, these links will not be
installed, so this option will have no effect.
3. The new option --enable-static-extensions (default is no) enforces
the use of statically linked extension libraries into the executable.
On platforms like Cygwin, this option is the only way to work with
extensions. These platforms have problems in handling dynamic libraries.
4. By default, all extensions will be built if the required libraries
exist on the platform. The options --disable-xml, --disable-pgsql,
and --disable-mpfr can be used to switch off the building of any
specific extension.
5. The options --with-expat=PATH, --with-libpq=PATH, and --with-mpfr=PATH
allow the usage of a library installed in a specific path.