『lsを読まずにプログラマを名乗るな!』

秀和システムから出版された、 拙著『lsを読まずにプログラマを名乗るな!』(ISBN:978-4-7980-3943-5) のサポートページです。

書籍中の誤りに関する情報以外にも、 紙面の都合で書籍では記述できなかった情報等を掲載します。

拙著の読者以外にも、 GNU coreutils のソースコードを参照する方のお役に立ては幸いです。

内容の不備等にお気付きの際には、 メール、 twitter (@flyingfoozy 宛) 等でお知らせください。

表題 概要
正誤情報/補足説明 書籍中の誤りに関する修正、 および補足的な説明を掲載します。
ビルド時の留意点 GNU coreutils をソースコードからビルドする際の、 留意点について説明します。
GNU coreutils へのバグ報告 本書の執筆過程で見つけた GNU coreutils のバグに関して説明します。

本書の題材として GNU coreutils の ls を採用した理由

出版以来、 『何故 BSD 系のソースコードではないのか?』とか、 『BSD 系のソースコードの方が読むのが楽なのでは?』 といった疑問を持たれる方が多数見受けられましたので、 GNU coreutils のソースコードを選択した理由に関して、 本書の序文から引用します。

処理全体を理解するためのコストの点では、 ソースコードの分量が少ない、 BSD 系の ls コマンドのソースコードを読む、 という選択肢もあります。

しかし、 ls コマンドの実装を理解するための、 一種の『教材』として考えた場合、 BSD 系のソースコードには以下の問題があります。

また、 『コード量が多い』と言われる GNU coreutils の ls コマンドの実装ですが、 読み始めの対象となる機能範囲を、 非常にプリミティブな部分に限定した上で、 徐々に読み込む機能範囲を広げていけば、 それ程無理をしなくても読めるレベルのコード量です。

以上の理由から本書では、 GNU coreutils の ls コマンドのソースコードを選択しました。

(*1)筆者が試した範囲では、 『BSD 系』と言われる Mac OS X でもビルドできませんでした