gawk: Other Versions

1 
1 B.5 Other Freely Available 'awk' Implementations
1 ================================================
1 
1      It's kind of fun to put comments like this in your awk code:
1            '// Do C++ comments work? answer: yes! of course'
1                          -- _Michael Brennan_
1 
1    There are a number of other freely available 'awk' implementations.
1 This minor node briefly describes where to get them:
1 
1 Unix 'awk'
1      Brian Kernighan, one of the original designers of Unix 'awk', has
1      made his implementation of 'awk' freely available.  You can
1      retrieve this version via his home page
1      (http://www.cs.princeton.edu/~bwk).  It is available in several
1      archive formats:
1 
1      Shell archive
1           <http://www.cs.princeton.edu/~bwk/btl.mirror/awk.shar>
1 
1      Compressed 'tar' file
1           <http://www.cs.princeton.edu/~bwk/btl.mirror/awk.tar.gz>
1 
1      Zip file
1           <http://www.cs.princeton.edu/~bwk/btl.mirror/awk.zip>
1 
1      You can also retrieve it from GitHub:
1 
1           git clone git://github.com/onetrueawk/awk bwkawk
1 
1      This command creates a copy of the Git (https://git-scm.com)
1      repository in a directory named 'bwkawk'.  If you leave that
1      argument off the 'git' command line, the repository copy is created
1      in a directory named 'awk'.
1 
1      This version requires an ISO C (1990 standard) compiler; the C
1      compiler from GCC (the GNU Compiler Collection) works quite nicely.
1 
1      ⇒Common Extensions for a list of extensions in this 'awk'
1      that are not in POSIX 'awk'.
1 
1      As a side note, Dan Bornstein has created a Git repository tracking
1      all the versions of BWK 'awk' that he could find.  It's available
1      at <git://github.com/danfuzz/one-true-awk>.
1 
1 'mawk'
1      Michael Brennan wrote an independent implementation of 'awk',
1      called 'mawk'.  It is available under the GPL (⇒Copying),
1      just as 'gawk' is.
1 
1      The original distribution site for the 'mawk' source code no longer
1      has it.  A copy is available at
1      <http://www.skeeve.com/gawk/mawk1.3.3.tar.gz>.
1 
1      In 2009, Thomas Dickey took on 'mawk' maintenance.  Basic
1      information is available on the project's web page
1      (http://www.invisible-island.net/mawk).  The download URL is
1      <http://invisible-island.net/datafiles/release/mawk.tar.gz>.
1 
1      Once you have it, 'gunzip' may be used to decompress this file.
1      Installation is similar to 'gawk''s (⇒Unix Installation).
1 
1      ⇒Common Extensions for a list of extensions in 'mawk' that
1      are not in POSIX 'awk'.
1 
1 'mawk' 2.0
1      In 2016, Michael Brennan resumed 'mawk' development.  His
1      development snapshots are available via Git from the project's
1      GitHub page (https://github.com/mikebrennan000/mawk-2).
1 
1 'awka'
1      Written by Andrew Sumner, 'awka' translates 'awk' programs into C,
1      compiles them, and links them with a library of functions that
1      provide the core 'awk' functionality.  It also has a number of
1      extensions.
1 
1      The 'awk' translator is released under the GPL, and the library is
1      under the LGPL.
1 
1      To get 'awka', go to <https://sourceforge.net/projects/awka>.
1 
1      The project seems to be frozen; no new code changes have been made
1      since approximately 2001.
1 
1 'pawk'
1      Nelson H.F. Beebe at the University of Utah has modified BWK 'awk'
1      to provide timing and profiling information.  It is different from
1      'gawk' with the '--profile' option (⇒Profiling) in that it
1      uses CPU-based profiling, not line-count profiling.  You may find
1      it at either
1      <ftp://ftp.math.utah.edu/pub/pawk/pawk-20030606.tar.gz> or
1      <http://www.math.utah.edu/pub/pawk/pawk-20030606.tar.gz>.
1 
1 BusyBox 'awk'
1      BusyBox is a GPL-licensed program providing small versions of many
1      applications within a single executable.  It is aimed at embedded
1      systems.  It includes a full implementation of POSIX 'awk'.  When
1      building it, be careful not to do 'make install' as it will
1      overwrite copies of other applications in your '/usr/local/bin'.
1      For more information, see the project's home page
1      (https://busybox.net).
1 
1 The OpenSolaris POSIX 'awk'
1      The versions of 'awk' in '/usr/xpg4/bin' and '/usr/xpg6/bin' on
1      Solaris are more or less POSIX-compliant.  They are based on the
1      'awk' from Mortice Kern Systems for PCs.  We were able to make this
1      code compile and work under GNU/Linux with 1-2 hours of work.
1      Making it more generally portable (using GNU Autoconf and/or
1      Automake) would take more work, and this has not been done, at
1      least to our knowledge.
1 
1      The source code used to be available from the OpenSolaris website.
1      However, that project was ended and the website shut down.
1      Fortunately, the Illumos project
1      (https://wiki.illumos.org/display/illumos/illumos+Home) makes this
1      implementation available.  You can view the files one at a time
1      from
1      <https://github.com/joyent/illumos-joyent/blob/master/usr/src/cmd/awk_xpg4>.
1 
1 'jawk'
1      This is an interpreter for 'awk' written in Java.  It claims to be
1      a full interpreter, although because it uses Java facilities for
1      I/O and for regexp matching, the language it supports is different
1      from POSIX 'awk'.  More information is available on the project's
1      home page (https://jawk.sourceforge.net).
1 
1 Libmawk
1      This is an embeddable 'awk' interpreter derived from 'mawk'.  For
1      more information, see <http://repo.hu/projects/libmawk/>.
1 
1 'pawk'
1      This is a Python module that claims to bring 'awk'-like features to
1      Python.  See <https://github.com/alecthomas/pawk> for more
1      information.  (This is not related to Nelson Beebe's modified
1      version of BWK 'awk', described earlier.)
1 
1 QSE 'awk'
1      This is an embeddable 'awk' interpreter.  For more information, see
1      <https://code.google.com/p/qse/>.
1 
1 'QTawk'
1      This is an independent implementation of 'awk' distributed under
1      the GPL. It has a large number of extensions over standard 'awk'
1      and may not be 100% syntactically compatible with it.  See
1      <http://www.quiktrim.org/QTawk.html> for more information,
1      including the manual.  The download link there is out of date; see
1      <http://www.quiktrim.org/#AdditionalResources> for the latest
1      download link.
1 
1      The project may also be frozen; no new code changes have been made
1      since approximately 2014.
1 
1 Other versions
1      See also the "Versions and implementations" section of the
1      Wikipedia article
1      (https://en.wikipedia.org/wiki/Awk_language#Versions_and_implementations)
1      on 'awk' for information on additional versions.
1