Code Monkey home page Code Monkey logo

gawkextlib's Introduction

This is gawkextlib.  It contains several shared library extension packages for
gawk, as well as libgawkextlib containing some APIs that are useful for
extension packages.  These extension libraries require the use of gawk (GNU
Awk) version 4.1.1 or later, except for the select and json extensions, which
are currently supported only by gawk 4.2 (API version 2) and later.

The 1.1.0 releases of the extensions should work with both API versions 1
(prior to gawk 4.2) and 2 (starting with gawk 4.2). The API changes did not
affect gawkextlib.

Please download gawkextlib plus one or more individual extensions.  You should
build and install gawkextlib first.  After you untar each package, please cd
into its directory and build as follows:

    ./configure && make && make check && make install && echo Success.

On an rpm-based system, such as Fedora or RHEL or CentOS, you should download
each package's rpm spec file from the rpm-specs directory and place the
tarballs in the customary RPM source directory, which defaults to
$HOME/rpmbuild/SOURCES.  You can then say

    rpmbuild -bb gawkextlib.spec

After installing the gawkextlib rpm, you can then build the individual
extension rpms like so:

    rpmbuild -bb gawk-<extension>.spec

If you would like to build from git sources, please make sure that your
system has these packages installed: autoconf, automake, gettext, libtool,
and autopoint. On many systems, autopoint is part of the gettext package,
but some distributions, such as Ubuntu, place it in a separate package.

With that infrastructure in place, the steps are very similar:

    git clone git://git.code.sf.net/p/gawkextlib/code gawkextlib

Please build lib first, and then the extensions you want, like so:

    autoreconf -i && \
      ./configure && make && make check && make install && echo Success.

Note: if gawk is installed in a non-standard location, please call
`configure --with-gawk=/path/to/gawk`.  Similarly, if you do not
plan to install gawkextlib in the standard location, please use the `--prefix`
option.  So your configure command might look something like:

    configure --with-gawk=/path/to/gawk --prefix=/path/to/gawkextlib

Please use the mailing lists to report bugs or contribute new code.
We welcome the contribution of new extensions.

Developers: please refer to the Development file.  This file has more detailed
instructions for building from git, installing in non-standard locations,
creating new extensions, and testing packages.

Note: if you are using legacy xgawk, please upgrade to gawk version 4.1.1 or
later with these new packages.  There is only one known incompatibility between
xgawk and current gawk: in gawk 4.1 and later, the `@include` and `@load`
directives require double quotes around the filename.  With xgawk, there were
no quotes.  Please let us know if you find any other incompatibilities.

gawkextlib's People

Contributors

actions-user avatar ajschorr avatar arnoldrobbins avatar camwebb avatar m-collado avatar paulinohuerta avatar rekgrpth avatar winpg avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

gawkextlib's Issues

gawkextlib xml on gawk-5.2.1

Is gawkextlib xml expected to work with gawk 5.2.1, API 3.2, with the new AWK_BOOL?

It works as expected with awk 5.1.1, and with all earlier versions going back to 4.1.3. I've been using it regularly since 2017.

But with 5.2.1 I'm seeing anomalous behavior where empty xml elements (e.g. <doi></doi>) are evaluating as true even though they string-equal "".

In connection with that empty xml field, gawk 5.2.1 crashes with

gawk: ../mkbib.awk:1142: (FILENAME=buzsaki_2003_EEG_source.xml FNR=173) fatal: internal error: file eval.c, line 1358: unexpected parameter type Node_illegal

If I build with sanitizer, I see concat_exp() doing a double-free of an arg that was earlier freed by r_interpret().

I did a whole slew of experiments to try to understand what is happening, but it's a large and tricky code base. It seems to have something to do with Node_var appearing where usually Node_val does, but I was quickly in over my head.

libgawkextlib and xml.so were both built with gawk-5.2.1 installed. I tried with old release code and with the latest git sources -- same result.

Suspiciously, there are almost no substantive commits to the xml/ subdir in the git history.

If it's useful I can share buzsaki_2003_EEG_source.xml and even the script that's crashing on 5.2.1.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.