Old Extension Problems (The GNU Awk User’s Guide)

From Get docs
Gawk/docs/latest/Old-Extension-Problems


C.5.1 Problems With The Old Mechanism

The old extension mechanism had several problems:

  • It depended heavily upon gawk internals. Any time the NODE structure121 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.
  • Being able to call into gawk from 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.
  • The API would change occasionally as gawk changed; 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 enhanced 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 xgawk project is provided in The gawkextlib Project.



Footnotes

(121)

A critical central data structure inside gawk.