Gawk Roadmap
This page is an unofficial, subject to change, work in progress,
roadmap for gawk
development.
Where We Are Now
Gawk 4.2.0 is the current release. The manual was published at the
beginning of 2015 as the fourth edition of
Effective awk Programming.
Volunteer needed: I would love to find someone to build
gawk
with Visual Studio (at least VS 2012) under
Windows and maintain a native Win32 version.
Some nice things have happened for the 4.2 version:
- Fix some of the problems with comments in the pretty printer in the
master branch. This is mostly done; some work on the code for
switch
statements remains, but may not be done
before I release.
- We now have strongly typed regexp constants.
- There is a new
typeof()
function.
- Regex support was added to the API.
- Additional API work from dev team was done.
- The support code was moved into a separate directory.
- We improved the regex matching by caching two copies of each compiled
regex, one for IGNORECASE, one for regular.
- Suport for MPFR access was added to the API.
- Lots of other good stuff, see the
NEWS
file.
What's Next
Things to do:
- Use RapidJSON
to write an extension that dumps arrays to JSON and reads them
back in from JSON. This would also be a great test of writing
an extension in C++. This is DONE, and in gawkextlib. It will
included in Fedora 28!
- Rework memory handling to use atom tables for strings, wide
strings, and compiled regex data structures. Keep a percentage
of unreferenced items per table and do a cleanup scan when
that gets hit.
- Do a deep dive on how git is used in the project. This has been
started and the document is available in the master branch.
- Look at the code in the
old-extension
directory to get a handle
on what it does, and then try to integrate it into the code base and document
how to use it. It is an old-style extension that allows supplying
user-defined functions to be called when certain array operations are performed.
But the code is somewhat twisty. I will probably have to do this.
Here are some ideas that have been floating around amongst the development
team:
- Think about some sort of namespace mechanism for variables and/or
functions in modules. WIP in the features/namespaces branch.
- More code review and clean-up.
Bookkeeping
Copyright © 2009, 2010, 2011, 2012, 2013, 2014, 2016, 2017 Arnold David Robbins. All Rights
Reserved.
First started: 19 December, 2009.
Last updated: 14 December, 2017.