2008-05-01から1ヶ月間の記事一覧
defmethod の実装が限定的に終わる。今のところ,メソッドの検索は class ID をキーに,ハッシュを利用した n 分木構造を辿る仕組みにしている。効率的ではないかも知れないが,一番,直感的に思える実装。Generic Function は,関数の配列と,関数を検索す…
メッセンジャーで別れ話をしながら defmethod の実装をしていたら,いつの間にかよりが戻っていた件。その分ソースコードはこんがらがった。method の specialization の仕組みは,かなりいい感じで実装できた。generic function のインフラは完成。あとはde…
Generic Function の実装中に,色々,デザインのアイデアが浮かんで来たので少々寄り道中。もともと etolisp は赤い本を読んで,lambda の仕組みを知って感動したのが始まりで,実装し始めたものだ。そのため,Lambda には特別な思いが込められ,特別扱いを…
今日は defclass の実装。継承もスタティックメンバもサポートできた。この辺,赤い本は少ししか言及がないので,理解が正しいかどうか不安だ。取りあえず本に載っているコードは全て動くようになった。Precedence も,図を書いて説明すると複雑そうだが,実…
半年以上 塩漬け になっていた package 絡みの問題を解決。なんかもう記憶が定かではないのだが,拙い blog の記述によれば,実行時にシンボル名を解決していたのが問題になっていたらしい。結局「,」や「,@」を,CL package*1のexportシンボルにして,「,ho…
【ニコニコ動画】創世のアクエリオンを聞きながら作業。「あっいーしーてーるー」がリフレインしてあまり捗らない。ニコニコ動画に「作業用BGM」タグがあるのを発見。ニコニコだと時間制限がないので,平気で「神曲メドレー90分」とかがアップされている。MP…
Code Project の記事をもとに実装し始めたガーベージコレクタも,そろそろ etolisp での使用に耐えるものに出来上がってきた。元のコードは分かり易さのためか(?)マーキングの処理で明らかに非効率な線形サーチを行っていた。そのため10万ノードのゴミ掃…
id:xoinu:20080515 の続き。本日は gc_ptr の配列版の実装。動的配列やハッシュなど,cons 以外のデータ構造についてもちゃんとガーベージコレクタが働くようにするには,node_t::contains() によって参照関係をトレースできるような gc_ptr の配列を作る必…
iPhoneをトイレのタイルの上に落下... orz
このまえ(id:xoinu:20080503:1209891180)の続きをごにょごにょ。A garbage collection framework for C++ のコンセプトコードは確かに面白いが,致命的な問題が2つ。1つはそのままのコードだとデストラクタが正しく呼ばれない。node_t のデストラクト時に…
CEOがオフィスにやってきたので,かねてから考えていた,とある報告と相談。結果は二つ返事で快諾。我ながら英断だった。即答してくれたことにも感謝。自分で自分の道を切り開いた瞬間って,脳内に青い液体がパァっと浸透するような,そんな快感爽快感がある…
C++/CLI を少しいじって,メモリ管理から開放される気楽さを知ってしまった。興味がわいたので,A garbage collection framework for C++の実装を参考にお手軽 gc_ptr を実装した。正確にいうと,リンク先の gc_ptr の実装を理解しただけ,ということになる…