バグベアードを更新しました。

バグベアード


http://tricklib.com/cxx/ex/bugbeard/

2010-02-14 以下の点を修正。
  • #include <sys\stat.h> を #include <sys/stat.h> に修正。(ご指摘、感謝)
  • 一部 BUT_T() が使用されていなかった箇所に BUT_T() を適用。(ご指摘、感謝)
  • bug_get_winver() を Windows 7 などにも対応した最新の状態に更新。
  • Boost.勉強会で発表したバグベアード入門の ustream へのリンクと発表資料の追加。

...Boost.勉強会の発表当日は.pptx版しか用意していなかった発表資料も.pdf版を用意しておきました。

オーナーメイド自分アイコン缶バッチ共同購入者の募集

面倒臭い思いするよりは多少お金を余分に払うほうがマシだと考えてるぐーたらさんなので、あまり本意ではないのですが缶バッチ共同購入を強く希望する人達も居られるようですし、気まぐれを起こしてたまには面倒なことをやってみます。

各種条件

発注先
ZEAMI Art ( http://www.zeamiart.com/ )
缶バッチの種類
円形25mm
個別包装
あり
一人あたりの注文個数
下記[共同購入者人数別の数量と代金]を参照
一人あたりの代金
下記[共同購入者人数別の数量と代金]と[購入費用内訳]を参照
応募方法
この記事のコメント欄もしくは、Twitter での @ あるいは D で私宛に [缶バッチ共同購入希望] と告げて下さい。( Twitter の D でご応募頂いた場合はその内容を第三者にお知らせすることはありません。) また、引き渡しの場所や時期になどについて相談がある場合は併せてその旨をお知らせください。
募集締め切り
2009-09-26(土曜日)のお昼ぐらい締め切りました。
最低応募人数
0人(誰もいなくても私一人で購入します。)
最大応募人数
5人(人数が増えるほど、私の手間もリスクも増えるだけなので)
応募者が多い場合
不公平に抽選で選びます(トラブルを避けたいので私との接点の多い人を優遇します)。 選ばれた方も選ばれなかった方も個別に2009-09-27(日曜日)までにその旨をお伝えします。
デザインの確認および調整期間
来週いっぱいぐらい?
発注
デザインの確認および調整が済んだらすぐ
道化師のところへの商品到着
発注から2週間後ぐらい
商品の引き渡し
極力、東京都内(山手線圏内)のどこかで代金と直接引き替え
商品の引き渡し期限
道化師のところへの商品到着後、極力1ヶ月以内でお願いします
引き渡し時の商品の包装状態
個別包装されている以外の包装は一切しません
その他
クレーム等は基本受け付けません(儲けもなく面倒を背負ってる状態なのでお許しを。しかし、私自身が重過失を犯したと認める場合にはそれなりに対処します。)

共同購入者人数別の数量と代金

人数 数量 代金
1 15 \1,500
2 10 \1,000
3 - -
4 6 \600
5 5 \500

...希望者が3人の場合、応募期間を1週間だけ延長します。延長しても3人のままだった場合、抽選で2人に絞ります。

購入費用内訳

項目 数量 単価 合計
円形25mm缶バッチ 30 \40 \1,200
個別包装オプション 30 \15 \450
送料 1 \950 \950
代引き手数料 1 \315 \315
- - - -
総計 - - \2,915

部分的なマーク・アンド・スイープ( Partial Mark and Sweep )の詳細について

昨晩、Twitter上で、循環参照問題*1機械的に排除する方法について意見を求めたところ id:DigitalGhost さん( @DecimalBloat )から...

http://wiki.livedoor.jp/author_nari/d/GC/extend/Partial%20Mark%20and%20Sweep

...というものをご紹介頂いたのですが、「4.scan」の記述が非常に残念な状態になっています。

で、今日、たまたま id:DigitalGhost さんと名古屋でお会いすることになっていたので、これ幸いと id:DigitalGhost さんからその詳細を教えて頂きました。その際のメモを以下に残しておきます。

あるべき挙動のモデル

表記
表記 説明
S1,S2,S3 スタックからの参照
A,B,C,D 循環参照を形成しているオブジェクト群
X 循環参照を形成しているオブジェクト群から参照されている外部のオブジェクト
吹き出しの数字 それぞれのオブジェクトの被参照カウント
初期状態


スタックからの参照のひとつが切れるがまだ別のスタックからの参照が残っている状態


最後のスタックからの参照が切れる状態


循環参照オブジェクトが解放された状態


部分的なマーク・アンド・スイープ( Partial Mark and Sweep )での挙動

件のページと併せてご参照ください。

「4.scan」の記述が致命的なのは「4.scan」は実際には 「3. Mark Gray」と同様の「Mark Black」という操作と「whiten」操作をごっちゃに記述していることです。これらはそれぞれ...

Mark Black
Mark Gray と同様の操作を行なう。ただし非grayのオブジェクトをgrayに置き換えるのではなく、参照カウントが非0で且つgrayのオブジェクトをblackに置き換え、また参照カウントを -1 するのではなく代わりに +1 する。
Whiten
「Mark Black」を実施後、grayで且つ参照カウントが0のオブジェクトをwhiteにする。

...のようになります。*2

スタックからの参照のひとつが切れるがまだ別のスタックからの参照が残っている時の挙動





最後のスタックからの参照が切れた時の挙動






追記

微妙に解釈が間違っているようです。詳細はコメント欄を参照。

*1:スマートポインタを利用したシステムおいてプログラムからは一切アクセスされなくなったにも関わらず循環的に相互参照することで生き長らえてしまうオブジェクト群が発生する問題。リソースリークの一種。

*2:「Mark Black」も「Whiten」も便宜上そう勝手に呼称しているだけで正規のステップ名ではありません。

2009-08-30 開催の Future Language TV でスピーカーやります。

【Future Language TV のイベント情報】

予告無く大幅に内容を変更するかもしれませんが、現在、以下のような内容での発表を考えております。

lucifer の設計コンセプトと導入予定の機能について

  • 未来の言語の前に
    • これからのコンピューティングについて
  • 設計コンセプト
    • 一般論としてはどのような言語を設計するべきなのか。
    • lucifer としてはどのように設計するのか。
  • 導入予定の機能紹介
    • 完全演算表示 ( providence )
    • 超例外処理 ( super exception handling )
    • 連鎖参照 ( presenter )
    • 型復元/修飾復元 ( type restore / qualification restore )

超例外原理主義

例外原理主義」のお話の続き。名前に「超」が追加されましたが、前回の例外原理主義と今回の超例外原理主義は同じことを指してます。詳しくは前回のコメント欄を参照のこと。

量子論での重力と電磁力、強い力、弱い力を同じ一つの根源にまとめる理論の名にあやかってこの超例外原理主義の話を大統一理論と呼んだりもしていましたが、超例外原理主義において、電磁力、強い力、弱い力に相当するのは例外、エラー、assertであり、重力に相当するのは正常系の return です。

いま現在の常識ではなんとも滑稽で馬鹿げた話に聞こえるかもしれませんが、超例外原理主義においては正常系の return においても下位レイヤーの関数がどのような引数で呼ばれどのような戻り値を返したのかを木構造でネストして返すべきだと考えます。

そうすることで正常/異常を問わず情報の扱いと処理の流れが超例外によって統一され、非常に強力な直交性を得ることができます。

そして正常系であっても超例外情報を扱うことによって、正常系によって返された処理結果が本当に正しい処理結果なのか検証可能になり、またそれが間違っていた場合にどこが原因で間違えたのかも超例外情報だけで特定可能になります。

・・・少しだけ正気に戻りますと、正常系の超例外はデバッグモードでのみ有効とするのが現実的でしょうね。