2008-11-01から1ヶ月間の記事一覧
mkdir -p は便利、という意見と、使うな、という意見がある。 -p, --parents 引き数に指定した各々の directory で、存在しない親ディレクトリも含めて作成する。作成された親ディレクトリのアクセス権は、 umask の値に `u+wx' としたものが設定される。す…
標準的なのは、次くらいで十分だろう。 all -- 必要なもの一式を全部作る。デフォルトターゲット。 clean -- ほぼallの反対。生成に時間がかかるファイルや、ほとんど変更しないファイルは消さなくてもよい。 distclean -- 配布に含まれていなかった全てのフ…
バージョンをvsnと表記する(いまだに馴染めない^^;)。 「アプリケーション」が独特な意味を持つ(いまだに馴染めない^^;)。 libはアプリケーション群を意味する(馴染んだ)。 シェルとmakeをヘビーに使う(もう大変だよ)。 全体に古風(年寄り向きとも…
シェル変数への代入は、=の両側空白なし。FOO=bar 、FOO='bar baz' とか。 $$はシェルのPID、一時ファイル名によく使う。Makefile上では$$$$ install -d は便利 でも、installよりcpのほうが便利なときが多い。 cp -R my/dir your/ と cp -R my/dir/* your/d…
恒等射、同型射、圏同値を与える関手などを総称して、同値性セル(equivalence cell)と呼ぶことにする。A, Bのあいだに、i:A→B と、(iに対して一意的とは限らない)i#があって、 i;i# 〜 idA i#;i 〜 idB となることが同値性セルの条件。ここで、〜 は、適…
%% This code used to reside in net.erl, but has now been moved to%% a searate module. s/searate/separate/
悔やまれた件、もう一度調べた。基本的には、「OTP設計原理」を読めばよいのだ。次の概念を理解しよう。 アプリケーション OTP-ST(監視ツリー) OTP-STアプリケーション トップスーパーバイザ アプリケーションコントローラ・プロセス アプリケーションマス…
で、さらに15分ほど考えた。f:A→B, g:C→Dだとして、B 〜C であったとき、cod(f)≠dom(g) でも f;g を定義できるか? これが問題になる。結論を言えば「できない」。これはホモトピーとの類似を追いかけてみるとわかる。i:B〜C, j:B〜C であるとき、i〜j とは…
シェンロン ブルードラゴン 亀仙人 まっ、いいか。
1日15分くらいずつ考えている感じだな。高次骨格の構成はそれほど単純じゃないかもな。Cが2-圏として、C1をCの1-セルの集合だとする(1以下のセルではない)。C0の同値(2-同値)をもとにして、C1にも普通の同値関係を入れられるが、期待した構造とはどうも…
高次骨格はずっと気になっている。高次ラッセル/バーンサイド代数というとカッコイイかも知れない。以下、ある種の同値関係と簡単な推論図に関してメモ。Cを2-圏とする。話を簡単にするために厳密(strict case)とする。Cのホム圏C(A, B)は圏だから、この…
edoc:read_source/{1, 2} -- これは便利だ! 他にも意外に便利な関数があるかもよ。@headerfile を読む検索パスは、{includes, Path} where Path = [string()] オプションで指定される。includesはEPPの処理のときも共通に使われる。{doc_path, Path} where …
本編に書こうと予定してるが、どうなるか? とりあえメモしておく。Ordは順序集合と単調写像(order preserving maps)の圏。離散順序を付ける関手 D:Set→Ordと忘却関手U:Ord→Setは随伴。Dは埋め込みと考えられるから、その像=離散順序集合の部分圏をDOrd⊆O…
動的呼び出し Mod:func(Arg) がundefで失敗するまでに、とんでもない時間がかかる。
stdlib/proc_lib.erlを読むといいかも。
意味も似てるし綴りも似てる。こりゃ間違うよな。 clash 衝突 crash 衝突、破壊、墜落、崩壊 crush つぶれる、崩壊、壊滅 flushも綴りに注意。
erl_call -s -sname test とかして、testノードが起動してないと、erl_callがERTSを起動しようとする(-s (startかな)オプションによる)。これが失敗した場合、どうもクリーンナップができてないようで、testというノードのエントリーがEPMDに残るようだ…
ついでに書いておかなかった件。曖昧な記憶によると: -name node1@localhost -- ドメイン名にドットがないと、どっかで構文エラー。 -name node1@128.0.0.1 -- 忘れた。 -name node1@192.160.0.33 (ホントのIPアドレス) -- 忘れた。ダメだったかな。 -nam…
本編で「ErlangとJavaのあいだでリモートメッセージング」という記事を書いたとき、ERTSノードのロングネームについてかなり調べた。が、書かなかった。あれは書いておくべきだった。ついでにメモしておけば、今ごろ再度調べる手間は省けたものを!!!
> werl -env ERL_WINDOW_TITLE "Test and Debug"
ERL_LIBSが実在しないディレクトリを指すとwerlがクラッシュ。
stdlib/src/shell.erlに次のような行がある。 io:fwrite("** ~w: ~s **\n", [Line,apply(Mod,format_error,[What])]),Whatがエラーreasonで、対応するモジュールModのformat_error/1 を呼び出して 人間可読エラーメッセージを生成している。同じ手法は: ker…
io_libのman: Type:chars() = [char() | chars()]Function:char_list(Term) -> bool() Returns true if Term is a flat list of characters, otherwise it returns false.deep_char_list(Term) -> bool() Returns true if Term is a, possibly deep, list o…
%% @doc シリアライズ・ドライバ. %% %% @docfile "serialize.edoc"これはクラッシュしてしまう。日本語のせいではなくて、@docと@docfileは共存させられないようだ。
圏の骨格代数を、一部でバーンサイド代数と呼ぶが、集合圏のバーンサイド半環は、基数の代数ってことになる。基数が集合の同型類だと指摘したのは確かラッセルだよね。「3とは、この世にある『3つのモノからなる集まり』すべてからなる類」とか言っていた。…
werl hi -myapp foo bar baz -myapp hoge -- fuga 1> init:get_plain_arguments(). ["fuga"] 2> init:get_arguments(). [{root,["C:\\INSTAL~1\\ERL56~1.4"]}, {progname,["erl"]}, {home,["C:\\Documents and Settings\\Hiyama\\Work","hi"]}, {myapp,["foo…
@typeによる型定義に長い説明を付けたいのだが、それができない。@docは、どこに書いても次の関数にかかってしまう。
kernel/include/file.hrl で使われている。型に、pos_integer(), non_neg_integer() なんてのも使われている。
file_libじゃなくて、filelib。まー、そういうこともあるよね。ところで、libはツマンネー。あれはなんだ?
stdlib/erl_posix_msg.erl : message(e2big) -> "argument list too long"; message(eacces) -> "permission denied"; message(eaddrinuse) -> "address already in use"; message(eaddrnotavail) -> "can't assign requested address"; message(eadv) -> "a…