Topic: All awk's on Solaris are broken!

Izvinjavam se za ime, ali nisam znao sta drugo da stavim. wink Elem, evo jedne interesantne poruke sa comp.lang.awk liste koja objasnjava zasto nijedna awk implementacija na Solarisu ne radi ispravno:

...
Actually *ALL* awk implementations shipped with Solaris are broken :-/ 

   cheusov@solaris> 
   0 cheusov>/usr/xpg4/bin/awk '$0 ~ /=/' 
   /usr/xpg4/bin/awk: syntax error  Context is: 
   >>>     $0 ~ /= <<< 

   1 cheusov>/usr/bin/nawk '$0 ~ /=/' 
   /usr/bin/nawk: syntax error at source line 1 
   context is 
        $0 ~ >>>  /= <<< 
   /usr/bin/nawk: bailing out at source line 1 

   2 cheusov>/usr/bin/awk '$0 ~ /=/' 
   awk: syntax error near line 1 
   awk: bailing out near line 1 

   2 cheusov>uname -a 
   SunOS solaris 5.10 Generic_125100-08 sun4u sparc SUNW,Ultra-5_10 

   0 cheusov> 

This is just one bug, there are others. 

P.S. 
"The One True AWK" by Brian Kernigan has also lots of problems. 
Lots of them were sucessfully fixed in NetBSD. 

- fixed: serious bug with regular expression, PR/33392 
- fixed: support for multibyte charsets in tolower/toupper functions, 
     PR/36394 
- fixed: there is a hardcoded limit on a number of open files, PR/37205 
- fixed: incorrect handling of \ at the end of line in awk script, PR/37212 
- fixed: incorrect matching of [:cntrl:], PR/38737 
- fixed: warning about non-portable escape sequences, PR/39002 
- fixed: free(): warning: junk pointer, too low to make sense, PR/39132 
- fixed: -Ft is broken, PR/39133 
- fixed: segfaults when "nextfile" is in BEGIN {...}, bin/39134 
- fixed: nawk doesn't handle RS as a RE but as a single character, PR/30294 
- fixed: awk(1) crash with RE and ^ anchor, PR/40689 

Others are not fixed: 
- Bizarre behavior in awk with invalid numeric constants, PR/42463 
- LC_NUMERIC in awk is not POSIX compliant, PR/42320 
- NetBSD awk/nawk concatenation op. is slower than that of GNU awk, PR/39759 
- /usr/bin/awk: formatting issues in printf, PR/39135 
- regexps should treat { and } as {n,m}, but as regular 
  characters, PR/38127 

I sent all this to Brian, but he ignored all these issues and fixes. 
...

http://groups.google.com/group/comp.lan … c46ee45910

Inace autor poruke je Aleksey Cheusov, tvorac RUNAWK wrapper-a za awk.

Upozorenje za sve koji koriste awk na Solarisu! smile

The best way to learn UNIX is to play with it, and the harder you play, the more you learn.
If you play hard enough, you'll break something for sure, and having to fix a badly broken system is arguably the fastest way of all to learn. -Michael Lucas, AbsoluteBSD

Re: All awk's on Solaris are broken!

Ja dugo, dugo nisam koristio AWK na Solaris-u ali koliko se secam iz ranih 90tih stvar je radila. Ja uzimam sa malom rezervom izjave ljudi
sa comp.lang.awk. To je mailing mailing lista za GNU AWK. Nisam tamo nesto vidjao mnogo ne Linux korisnika. Recimo

- LC_NUMERIC in awk is not POSIX compliant, PR/42320 
- NetBSD awk/nawk concatenation op. is slower than that of GNU awk, PR/39759 

Solaris a pogotovu AWK pre-dates POSIX tako da je PR/42320 vise manje bullshit. PR/39759 je tesko proseravanje. Mi znamo da su GNU tools i Linux najbolji,
najbrzi i najlepsi. Takodje u gornjem postu  o AWK-u se govori kao o delu jednog autora Briana Kernigan-a. On je jedan od co-autora i to verovatno kozmeticki. Glavni dizajenr i pisac AWK-a je Alfredo Aho.

Mozes da nadjes Ahovu web-stranicu i kontakt ako odes na Deparment of Computer Scienece at Columbia University New York.
Pitaj njega sta misli o gornjim bug-ovima.

Ja ne kazem da bug-ova nema ali gornja izjava je malo mnogo GNU radikalna.

Re: All awk's on Solaris are broken!

Oko wrote:

Ja dugo, dugo nisam koristio AWK na Solaris-u ali koliko se secam iz ranih 90tih stvar je radila.

Covek ne kaze da ne rade skroz, nego neke funkcionalnosti nisu u skladu sa POSIX-om/imaju ozbiljne bugove u implementaciji.

Oko wrote:

Ja uzimam sa malom rezervom izjave ljudi sa comp.lang.awk. To je mailing mailing lista za GNU AWK.

Ne bih se bas slozio, iako je vecina mozda Linux orijentisana lista je prvenstveno vezana za awk i njegove implementacije. Ima tamo dosta ljudi koji se ne slazu sa gawk filozofijom, za koji su iskovali i naziv - gawkism. wink Konkretno covek koji je autor ove poruke ima manje nesuglasice sa Aharonom Robbinsom - covekom koji je veoma zasluzan za to gde se gawk danas nalazi, a Aleksey koristi i sva tri *BSD-a i veoma aktivno radi na pkgsrc.

Oko wrote:

Nisam tamo nesto vidjao mnogo ne Linux korisnika. Recimo

- LC_NUMERIC in awk is not POSIX compliant, PR/42320 
- NetBSD awk/nawk concatenation op. is slower than that of GNU awk, PR/39759 


Solaris a pogotovu AWK pre-dates POSIX tako da je PR/42320 vise manje bullshit. PR/39759 je tesko proseravanje. Mi znamo da su GNU tools i Linux najbolji, najbrzi i najlepsi.

Cinjenica je da awk koji dolazi sa Solarisom u ovom trenutku ima bug, i radi visestruko sporije. To sto je uporedjen sa GNU awk-om nemora nista da znaci, moras nekad da uporedis nesto sa necim da pokazes kako nevalja. NIgde nije napisano da moras da ga napravis da radi na isti nacin kao u gawk-u, ali ako je nesto dobro zasto to ne iskoristiti?

Oko wrote:

Takodje u gornjem postu  o AWK-u se govori kao o delu jednog autora Briana Kernigan-a. On je jedan od co-autora i to verovatno kozmeticki. Glavni dizajenr i pisac AWK-a je Alfredo Aho.

Opet ne. Sva trojica su ucestvovali u stvaranju pocetne verzije, poznatije kao "old awk". Kasnije je Brian nastavio sa odrzavanjem i dodavanjem funkcija koje nisu bile dosupne u starom awk-u, i ta verzija (zadata pod FSF licencom 1996godine) je poznata kao novi awk, nawk, ili bwk (prvo 'b' kao Brian). A evo sta sam Brian kaze u intervjuu za awk:

LJ: What were the AWK and AMPL languages designed for? What is your part in their design?

BK: AWK was a joint effort among Al Aho, Peter Weinberger and myself; the name is our initials. I think it's fair to say we were pretty equal in our contributions. Al knew all about regular expressions and the pattern-action paradigm; Peter knew about report generation and database issues; and I had a very clear idea of wanting to be able to handle string and numeric values and conversions between them as easily as possible. I'm pretty sure that Peter did the first implementation (which only took a couple of days), aside from regular expressions, which Al did; I have maintained and modified it on my own since about 1980. We wrote the AWK book together in 1987.

http://www.linuxjournal.com/article.php?sid=7035

Ja ne kazem da bug-ova nema ali gornja izjava je malo mnogo GNU radikalna.

Nigde se ne pominje GNU, a odavno je poznato da Solaris dolazi sa "problematicnim" implementacijama awk-a.

Sve najbolje.

The best way to learn UNIX is to play with it, and the harder you play, the more you learn.
If you play hard enough, you'll break something for sure, and having to fix a badly broken system is arguably the fastest way of all to learn. -Michael Lucas, AbsoluteBSD