The old extension mechanism had several problems:
gawkinternals. Any time the
NODEstructure115 changed, an extension would have to be recompiled. Furthermore, to really write extensions required understanding something about
gawk’s internal functions. There was some documentation in this Web page, but it was quite minimal.
gawkfrom an extension required linker facilities that are common on Unix-derived systems but that did not work on MS-Windows systems; users wanting extensions on MS-Windows had to statically link them into
gawk, even though MS-Windows supports dynamic loading of shared objects.
gawkchanged; no compatibility between versions was ever offered or planned for.
Despite the drawbacks, the
xgawk project developers forked
gawk and developed several significant extensions. They also
gawk’s facilities relating to file inclusion and
shared object access.
A new API was desired for a long time, but only in 2012 did the
gawk maintainer and the
xgawk developers finally
start working on it together. More information about the
project is provided in gawkextlib.
A critical central data structure