2012年2月 5日

Inside Linux Software

オープンソースソフトウェアをインストールする際に使われる、Makefileを生成するconfigureスクリプト。様々な環境に合わせてMakefileを生成してくれるのは便利なのですが、その仕組みはまったくよく分かっていませんでした。

GNUのautoconfとautomakeが使われる事は分かったのですが、日本語でちゃんと解説した文書が見当たりませんでした。唯一見つかったのがこの「Inside Linux Software」。

Linuxで動作するオープンソースソフトウェアの作り方が一通り解説された本です。これだけでポータビリティの有るソフトウェアが書けるわけではありませんが、出発点にはなりますね。

Inside Linux Software オープンソースソフトウェアのからくりとしくみ
Inside Linux Software オープンソースソフトウェアのからくりとしくみ佐藤 竜一

翔泳社 2007-03-14
売り上げランキング : 241072


Amazonで詳しく見る
by G-Tools

2012年1月17日

Programming Perl 第四版の発売は3月5日

Programming Perl: Unmatched Power for Text Processing and ScriptingProgramming Perl: Unmatched Power for Text Processing and Scripting
Tom Christiansen Larry Wall Jon Orwant

Oreilly & Associates Inc 2012-03-05
売り上げランキング : 86125

Amazonで詳しく見る
by G-Tools

順調に発売が遅れていますね。

2011年11月 5日

Perlbrew 0.31がリリース

Perlbrew 0.31がリリースされました。

2011年10月23日

perlbrew 0.30リリース

perlbrewがYAPC::Asia 2011記念で、バージョン0.30がリリースされています

YAPC::Asia 2011記念バージョンからか、ドラえもんネタですね...

インストールはいつも通りの以下のコマンド一発で。

curl -kL http://xrl.us/perlbrewinstall | bash

2011年9月28日

Perl 5.14.2がリリースされた

Perl 5.14.2がリリースされた

OS X Lion + Xcode4でのビルドに対応したところが一番嬉しいところでしょうか。

2011年9月19日

programming perl 第4版

Programming Perl: Unmatched Power for Text Processing and Scripting (Otx)
Tom Christiansen Larry Wall Jon Orwant
0596004923

programming perl第4版の表紙が発表されていますね。まぁ、版数以外は何も変わっていないようですが。

気になるのは発売日が微妙に遅くなっているところでしょうか。

2011年9月 4日

perlのuse VERSIONとuse featureの関係を、理解する

Perlには長い歴史の中で様々なPerl本体の機能追加や標準モジュールの追加、アップデートが行われてきました。

新しい機能を使うためには当然新しいバージョンのPerlが必要になりますが、世の中の全ての環境に常に最新バージョンのPerlがインストールされているわけでは有りません。

また、スクリプトを実行する前に、"perl -v"とコマンドをたたいて人間が事前にバージョンをチェックしたとしても、完全な保証にはなりません。

=======================================

しかし、心配することはありません。Perlにはスクリプト側で実行するPerlのバージョンをチェックする仕組みがちゃんと用意されています。

スクリプトの中で、以下の様にバージョンを指定するとPerl自身のバージョンチェックが行われます。

use VERSION;

例えば、"use 5.014;"と書けば、Perl 5.14.0以上でないと、そのスクリプトは実行できません。"use 5.014;"と記述されたスクリプトをPerl 5.12.3上で実行すると、下記の様なエラーメッセージが出力されて、スクリプトの実行は停止します。

Perl v5.14.0 required--this is only v5.12.3, stopped at version.pl line xxx.
BEGIN failed--compilation aborted at version.pl line xxx.

エラーメッセージに書かれている通り、このチェックはコンパイル時に実行されるので、スクリプトは一切実行されない状態で終了します。

気をつけないといけないのは、バージョンの記述方法がちょっと分かりづらいところがあるので、ハマリやすいポイントが有ります。

Perl 5.14.0を指定する時は、上記の様に"use 5.014;"と記述しますが、間違って、"use 5.14;"と記述すると、Perl 5.140.0以上を指定した事になってしまいます...が、当分そんなバージョンのPerlがリリースされる事も無いので、親切に下記の様にエラーメッセージに"v5.14.0の事じゃない?"と出力されますので、すぐに気がつくでしょう。

Perl v5.140.0 required (did you mean v5.14.0?)--this is only v5.14.1, stopped at version.pl line xxx.
BEGIN failed--compilation aborted at version.pl line xxx.

=============================================
さて、ここで一度話題を変えます。

Perlはアップデートの際には、後方互換性を非常に重要視します。

そのため、新しいキーワードを導入する際には、安易に新しいキーワードが導入される事で過去に作られたスクリプトが誤動作する事を防止する仕組みが用意されています。

それがfeatureプラグマです。

例えば、Perl 5.10.0以降で導入されたsay関数を使うためには、以下の様に指定します。

use feature 'say';

ほかにもPerl 5.10.0で導入されたgiven - when機能を有効にする「switch」、state変数を有効にする「state」が有ります。

これらの三つの機能をまとめて、「use feature ':5.10';」と指定することで有効にする事もできます。

また、Perl 5.14.0からはあらかじめ全ての文字列をUnicodeの文字列として取り扱うための「unicode_strings」も導入されました。

=============================================

また、話をuse VERSIONに戻します。

先ほど説明した、featureプラグマですが、use VERSIONとした時にも同じ効果が得られます。

つまり、「use 5.010;」と指定すれば、「use feature ':5.10';」としたのと同じ効果が得られますし、「use 5.014;」と指定すれば、「use feature qw(switch say state unicode_strings)」としたのと同じ効果が得られます。

また、更にuse関数で、Perl 5.12.0以降を指定すると、「use strict;」としたのと同じ効果を得ることができます。

便利ですが、ちょっと分かりづらいですね。



この様に、Perl 5.14までは、バージョン番号を指定しおけば、指定した以降のバージョンで動作する事を期待する、という意味でしたが、将来的にはこの意味付けが変わるとの事です。

詳しくは以下のサイトにレポートを読んで下さい。

2011年9月 3日

オライリーのブックカバー

今日、新宿のブックファーストでオライリー本を2冊買ったら、オライリー柄のブックカバーにしてくれた。2010年のブックフェアで用意されたものらしいけど、まだ有ったなんてラッキー。

2種類有るそうです。

oreilly_cover1.jpg
oreilly_cover2.jpg


2011年8月19日

Perl Pocket Reference

perldocが有れば、不要なんじゃ無いかと思いつつ、でも手元に有ると意外と使う頻度が高い「Perl Pocket Reference」の新版が5.14対応になってリリースされました。

Perl Pocket Reference (Otx)Perl Pocket Reference (Otx)
Johan Vromans

Oreilly & Associates Inc 2011-08-02
売り上げランキング : 50439

Amazonで詳しく見る
by G-Tools

2011年8月 8日

「Programming Perl, Fourth Edition」は11月リリース

http://oreilly.com/catalog/9780596004927/

待望の「Programming Perl, Fourth Edition」が11月にリリースされるらしい。5.14ベースだそうだ。

Amazonにももう登録されていますね。

Programming Perl: Unmatched Power for Text Processing and Scripting (Otx)Programming Perl: Unmatched Power for Text Processing and Scripting (Otx)
Tom Christiansen Larry Wall Jon Orwant

Oreilly & Associates Inc 2011-10-22
売り上げランキング : 146918

Amazonで詳しく見る
by G-Tools

Archives