え、NHK 受信料義務化するんでつか?2006年11月22日 10時54分31秒

菅義偉総務相が、NHKに放送命令を出した。「ラジオ・ジャパン」という海外向けの短波放送で、北朝鮮による拉致問題を重点的に扱うようにという「命令」である。

(中略)

「命令」への反対給付のように、菅総務相は国会で「受信料不払い者への延滞金・割増金制度の導入」や「受信料の義務化」の検討を表明した。

それに仮にでも媚びて、「命令」を唯々諾々と受け入れたのなら、連続した不祥事騒動どころではないNHKの自殺行為であり、視聴者の信頼は得られない。

そういえばここ最近 NHK 受信料払ってないなぁ。。。取り立て来ないんだよね。まぁ来なくていいんだけど。w

ActivePerl の perlcc は Win32 的にまだまだ使い物にならん2006年11月22日 12時21分27秒

ちょっと前まで、ActivePerlperlcc -c して生成した C コードはコンパイルすら通らなかった (エラー出してたのは Perl/lib/CORE/win32.h だけど) のに比べれば、最新版の 5.8.8.819 はコンパイルが通るだけマシにはなっているが、それでもまだまだ以下の問題が存在する模様。。。

  • perlcc を -c オプションをつけずに実行すると、MS-VC++ コンパイラコマンドである cl.exe を使ってコンパイルを実行しようとするが、Visual C++ 2005 Express Edition 日本語版を使用する場合、Win32 SDK のライブラリの場所がコンパイラオプションに渡されておらず、perlcc コマンドに -L オプションを指定してもうまく認識されない。(軽微な問題: -c オプションを用いて C ソースを生成する手順で回避可能)
  • perlcc -c では Makefile が生成されない為、ビルドの構成を自分で書かなければならない。(軽微な問題: 一度書けばそのまま使いまわせるので作業の自動化に支障はない)
  • BCC32 では Perl/lib/CORE/win32.h のコンパイルが (相変わらず) 通らない。(深刻な問題: C ソースは MS-VC++ のみに対して調整されているか、またはそもそもちゃんと整理されていない)
  • Perl の for 構文で、配列値がレキシカル変数に引き渡されない。例えば、以下のプログラムを Perl で実行すると、
    $var = 0;
    for my $d (1..10) { $var += $d }
    print "var: $var\n";
    
    以下のように出力されるが、
    var: 55
    
    これを perlcc -c で C ソース化し、VC++ にてビルドした実行形式ファイルを実行すると、以下のように出力される。
    var: 0
    
    for 構文の変数をグローバル変数にすればこの問題は回避されるが、
    $var = 0;
    for $d (1..10) { $var += $d }   # $d の my 宣言をやめる
    print "var: $var\n";
    
    こんな仕様は Perl5 的にお話にならない。ちなみに、
    $var = 0;
    @arr = 1..10;
    for my $d (@arr) { $var += $d }     # ループを配列変数で回す
    print "var: $var\n";
    
    とすると、アプリケーションエラーで落ちるプログラムを生成することができる。(重大な問題: だめだこりゃ)

こいつがちゃんと動くようになってくれれば、生成された実行形式に perl58.dll を添付すれば Perl を入れていない Windows マシンでも動かせるプログラムを配布できるようになり、実用上 VB 程度には魅力的になるのでゆるーく期待しているんだが、こんな初歩的な部分でバグを出しているようでは道のりは遠そうだ。なんだかなぁ。。。