<story><title>GoAWK: an AWK interpreter written in Go</title><url>https://github.com/benhoyt/goawk</url></story><parent_chain></parent_chain><comment><author>vvern</author><text>I would love to see support for calling out into go functions. The go stdlib so often has good implementations of functionality in places where things like the python stdlib doesn&amp;#x27;t.&lt;p&gt;There are some obvious questions around calling conventions and error handling, method invocation, etc. but nothing there seems totally insurmountable. Having a compliant implementation as a jumping off point is a great start.&lt;p&gt;Looking at the interp internals, the representation of function call expressions might need a little bit more structure to pull this off (rather than just a big switch for the awk builtins and user calls as just more awk instructions plopped inline). Furthermore there are questions about how exactly to represent go objects but I suspect with some boxing it could be made relatively ergonomic.</text></comment>
<story><title>GoAWK: an AWK interpreter written in Go</title><url>https://github.com/benhoyt/goawk</url></story><parent_chain></parent_chain><comment><author>kiwidrew</author><text>This is really cool!  It&amp;#x27;s rare to see new implementations of awk these days.  Bonus points for running it through the nawk test suite.&lt;p&gt;In my opinion &amp;#x2F;usr&amp;#x2F;bin&amp;#x2F;awk is a thing of beauty.  Certainly it&amp;#x27;s the most usable out of the trifecta of scripting languages that are mandated by POSIX.&lt;p&gt;(There&amp;#x27;s &amp;#x2F;bin&amp;#x2F;sh, where merely &lt;i&gt;using&lt;/i&gt; variables can quickly turn into a quoting nightmare.  But the true nightmare material is &amp;#x2F;usr&amp;#x2F;bin&amp;#x2F;sed, which has actually been shown [1] to be a Turing complete language!)&lt;p&gt;[1] &lt;a href=&quot;http:&amp;#x2F;&amp;#x2F;www.catonmat.net&amp;#x2F;ftp&amp;#x2F;sed&amp;#x2F;turing.txt&quot; rel=&quot;nofollow&quot;&gt;http:&amp;#x2F;&amp;#x2F;www.catonmat.net&amp;#x2F;ftp&amp;#x2F;sed&amp;#x2F;turing.txt&lt;/a&gt;</text></comment>