RFC: Virtual for awk implementation
Hi,
recently I stumbled across a problem with mawk, which is apprearly Ubuntu's default awk interpreter. This brought the idea to my mind of adding a virtual for awk. Beside the fact that we already have 3 awk interpreters in gx86 (gawk, mawk and busybox awk), there are other ones like nawk and awka. I had some discussions with spanKY on that topic in bug #415689, which summarizes in the following: Advantages: - mawk is faster - useful for scientific purposes - busybox awk could replace gawk on minimal systems - more POSIX conform systems Disadvantages: - some awk code in the tree and portage is probably using GNU extensions without executing gawk explicitly - gray zone of Posix 1003.2 (e.g. substr() function and an index of 0) What we would need: - virtual/awk - app-admin/eselect-awk (version available in cj-overlay) and - testing and migration of existing packages using gawk <http://qa-reports.gentoo.org/output/genrdeps/rindex/sys-apps/gawk> and <http://qa-reports.gentoo.org/output/genrdeps/dindex/sys-apps/gawk> to name a few. I have tested mawk as default interpreter for a while on my x86 boxes and didn't observed any problems so far. Cheers, Christoph -- Christoph Junghans http://dev.gentoo.org/~ottxor/ |
RFC: Virtual for awk implementation
Am 30.05.2012 02:11, schrieb Christoph Junghans:
> Hi, > > recently I stumbled across a problem with mawk, which is apprearly > Ubuntu's default awk interpreter. > This brought the idea to my mind of adding a virtual for awk. Beside > the fact that we already have 3 awk interpreters in gx86 (gawk, mawk > and busybox awk), there are other ones like nawk and awka. > > I had some discussions with spanKY on that topic in bug #415689, which > summarizes in the following: > > Advantages: > - mawk is faster - useful for scientific purposes > - busybox awk could replace gawk on minimal systems > - more POSIX conform systems > > Disadvantages: > - some awk code in the tree and portage is probably using GNU > extensions without executing gawk explicitly > - gray zone of Posix 1003.2 (e.g. substr() function and an index of 0) > [...] > > I have tested mawk as default interpreter for a while on my x86 boxes > and didn't observed any problems so far. > > Cheers, > > Christoph > An easy easy way to crash mawk is opening many different files. mkdir -p mkdir /tmp/foo; find "$HOME" -type f -printf '%f %s ' | gawk '{ print $2 > "/tmp/foo/" $1 }' --> Fills /tmp/foo with small files mkdir -p mkdir /tmp/foo; find "$HOME" -type f -printf '%f %s ' | mawk '{ print $2 > "/tmp/foo/" $1 }' --> Crashes with error 'mawk: cannot open "/tmp/foo/7B090d01" for output (Too many open files)' Probably not the cleverest approach to this but just a reminder that there are still subtle differences. That being said, +1 for giving the choice. Regards, Florian Philipp |
RFC: Virtual for awk implementation
Am 30.05.2012 20:29, schrieb Florian Philipp:
> > mkdir -p mkdir /tmp/foo; find "$HOME" -type f -printf '%f %s ' | > gawk '{ print $2 > "/tmp/foo/" $1 }' > > --> Fills /tmp/foo with small files > > mkdir -p mkdir /tmp/foo; find "$HOME" -type f -printf '%f %s ' | > mawk '{ print $2 > "/tmp/foo/" $1 }' > > --> Crashes with error 'mawk: cannot open "/tmp/foo/7B090d01" for output > (Too many open files)' > > Probably not the cleverest approach to this but just a reminder that > there are still subtle differences. > > That being said, +1 for giving the choice. > > Regards, > Florian Philipp s/mkdir -p mkdir/mkdir -p/g |
| All times are GMT. The time now is 03:51 AM. |
VBulletin, Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.