gawk 3.1.7 (3.1.6g) を試す

gawk のメンテナーである Arnold Robbins (メールでは Aharon Robbins) からBeta version of patch 7 to gawk 3.1 now available というメールが来ていますので、メールの内容を翻訳するとともにインストール手順を紹介します。

This note is to announce the first BETA release of patch 7 to version
3.1 of gawk.

これは gawk の 3.1 版のパッチ 7 の最初のベータリリースのアナウンスです。

It is available from:

以下から入手できます:

        http://www.skeeve.com/gawk-3.1.6g.tar.gz

Overall, this release fixes a number of bugs, as well as offering upgrades
to various infrastructure technologies, such as automake, autoconf, and
so on.  The list of changes from the NEWS file is appended, below.

全体的に、automake, autoconf などの様々な基盤技術にアップグレードするこ
とを提供するのと同様に、このリリースで数多くのバグを修正しています。

As far as I can tell, the documentation and code have both hit the
freeze point.

私が言える限りでは、ドキュメントとコードはフリーズポイント (リリースのた
めに特に致命的な問題点がない限り変更しない状態) になっています。

So, why do a beta release? So that you, yes you, the end user, can see
if anything I've done breaks gawk for you.  Then you can TELL ME ABOUT
IT so that I can fix it for the final release.

では、なぜベータリリースを行うのでしょうか? つまり、あなた方、エンドユー
ザーが私が行った内容のために gawk が問題を起こしていないかを確認すること
ができるのです。その場合には、最終リリースに直すことができるように「ぜひ
私に連絡して下さい」。

Thanks,

Arnold Robbins
address@hidden

---------------------------------------------
Changes from 3.1.6 to 3.1.7
3.1.6 から 3.1.7 への変更点
---------------------------
1. Gawk now has support for z/OS (IBM S/390 architecture).

1. gawk は z/OS (IBM S/390 アーキテクチャー) をサポートしました。

2. Gawk now handles multibyte strings better in [s]printf with field
   widths and such.

2. gawk はフィールド幅を持った [s]printf などでマルチバイト文字列をより
   うまく扱えるようになりました。

3. Gawk now uses libsigsegv to print a message before core dumping. This
   handles infinite recursion of an awk function a little better.
   Use of the library can be disabled at configure time with the
   --disable-libsigsegv option for unusual systems.

3. gawk はコアダンプする前に libsigsegv を使ってメッセージを表示すること
   ができるようになりました。これにより awk の関数の無限再帰呼び出しがあっ
   た場合にも少しだけうまく扱えるようになります。--disable-libsigsegv を
   configure で使うことで無効にすることができます。

4. The handling of BINMODE is now somewhat more sane.

4. BINMODE の扱いが少しまともになっています。

5. A getline from a directory is no longer fatal; instead it returns -1.

5. ディレクトリからの getline がもう致命的なエラーになりません。その代わ
   り -1 を返します。

6. Per POSIX, special variable names (like FS) cannot be used as function
   parameter names.

6. POSIX によって、特別な変数名 (FS のような) は関数のパラメータ名として
   使えなくなりました。

7. The new -O / --optimize option enables simple constant folding on
   the parse tree during parsing.  We hope that with time the number
   of optimizations will increase.

7. 新たな -O / --optimize オプションで解析時の解析木での簡単な定数畳
み込みを有効にできます。時間とともに最適化の回数が増えることを期待し
ています。

8. Updated to the latest autotools: Autoconf 2.63, Automake 1.11,
   Libtool 2.2.6a, and Gettext 0.17.

8. 最新の autotools にアップグレードしました。Autoconf 2.63, Automake
   1.11, Libtool 2.2.6a, and Gettext 0.17 です。

9. Some improvement in testing for isinf / isnan in builtin.c.

9. builtin.c の中の isinf / isnan のテストを改善しました。

10. Improved the handling of `a = a b c' to be more general.

10. `a = a b c' のような連接の扱いをより一般的に改善しました。

11. Lots of bugs fixed, see the ChangeLog for the details.

11. 多くのバグフィックスを行っていますが、詳細は ChangeLog を参照してく
    ださい。

さて、早速試します。 やり方は以下のとおりです。

$ wget http://www.skeeve.com/gawk-3.1.6g.tar.gz

$ tar -xzvf gawk-3.1.6g.tar.gz

$ cd gawk-3.1.6g

$ ./configure --enable-switch && make

$ make check

最後に 'ALL TESTS PASSED' と表示されれば問題ありません。 次にインストールしますが、この場合、/usr/local 以下にインストールされます。

$ sudo make install

gawk を実行して以下のように表示されれば問題ありません。 ただし、私の環境は環境変数 LC_ALL が en_US.utf8 なので英語です。

$ gawk --version
GNU Awk 3.1.6g
Copyright (C) 1989, 1991-2009 Free Software Foundation.

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see http://www.gnu.org/licenses/.

さて、今回の件ですが、日本 GNU AWK ユーザー会としてどのくらいお手伝いをすることができたのでしょうか。 2 番目と 8 番目が我々の指摘での修正になります。 8 番目の修正では Arnold がこのサーバーに ssh で接続して作業させて欲しいと言ってきたのですが、このサーバーは ssh できないのでお断りした経緯があります。

あと、気になるのは高速化の手段として加えられた、定数畳み込みと連接の最適化でしょうか。 遅い awk から脱却できるのかどうか気になります。

tag_gawk.png