昨日は22時半就寝、今朝は6時半起床。調子はまあいいが、7時に朝食を食べて、そのあとソファに横になって朝のニュースを観ていたら、8時過ぎまで寝てしまった。どうしてもこれくらいの時間に眠たくなる。それでも今日も会社に行く。
朝はけっこう雨が強く降っていて、本格的に梅雨という感じだった。会社まで徒歩15分な私は会社に着いた時点でとほほ15分という状態だった。傘をさしていてもズボンとか袖とか濡れてしまうのだ。今までは靴にも水がしみて非常に不快指数急上昇だったが、今年買ったゴアテックス仕様のウォーキングシューズのおかげで、靴の中は全く無事である。どうせだったら登山用のかっぱでも着ていったら完璧だったかもしれない。あれもゴアテックスで防水は完璧なのだ。3万円以上もしたのに全然着てないのはもったいない。山道具は高いのだ。使うともったいないのか、使わないともったいないのか、どっちなのだろう?でもかっぱを着ていくと会社に着いたときに脱ぐのが面倒だな。
仕事ではまたまた次々と問題が出てきた。旧サーバで動いていたプログラムが新サーバでコンパイルできない。main()はintでなければならないのにvoidで定義して、exit()でなくreturnで抜けているプログラムがいっぱいある。本来ならコンパイラがはじかなくてはならないのだが、旧サーバのOSではコンパイラのチェックが甘かったのだろう。多分warningは出ていたと思うが、みんなwarningは無視するからなあ。コンパイルオプションは変わってないので、コンパイラが厳しくなったのだろう。がんがんコンパイルでエラーになる。Cのソースは大量にあるのでいちいち手で直してられない。こいつらまとめて全部スクリプトで修正してしまえ、と思ったら、ソースによって書き方が、
void main(int argc, void **argv)
だったり
void
main(int argc, void **argv)
と2行に分かれていたりする。おまけにタブが入っていたりもする。というわけでがりがりとawkで久しぶりに/^[ \t]*void[ \t]*main[ \t]*(/などと正規表現使って変換して、2行に分かれているのにも対応して、元のソースとdiffとって、ということをがりがりやっていた。最近はスクリプト処理というとPerlが定番なのかもしれないが、私は実はPerlはだいぶ前にちょこっとかじっただけで、もうすっかり忘れてしまった。また勉強しなければ。でもUNIXに標準で備わっているawkで処理するのが手っ取り早い。と言うか、今のサーバにPerlはインストールされているのか?
Pro*Cのプログラムもプリコンパイルでエラーが出ている。PL/SQLでストアドプロシージャを呼んでいるプログラムのプリコンパイルが通らない。これはコンパイラオプションが違うようだが、旧サーバではどうやってたか、うちの開発環境独自のmakeツールの中身をみたら、どうも場合によって使い分けていたようだ。旧サーバなら自分たちで自由にいじることができたが、新サーバは自分でその辺の開発ツールをいじれない。複数の部署で別々に作って別々に運用してきたシステムを統合するというプロジェクトなので、開発環境の管理はまた別の部署なのだ。ついこの間もPro*COBOLのコンパイラオプションが今までと違って、頼み込んで特別対応版を作ってもらったところだ。オラクルのマニュアルを調べたところ、コンパイラオプションはソースの中でインラインで指定でき、Pro*Cの引数で指定するのよりインラインの方が優先されるらしい。結局プログラムに埋め込むこととなった。同じソースでもプラットフォームが違うとすんなりとコンパイルも通ってくれないとは。これからもまたなんだかんだ問題が出そうだ。こいつら、最終的にちゃんと動いてくれるのだろうか。