2016年05月のlog - project-enigma

2016年05月のlog

>> Site top >> weblog >> 月別アーカイブ >> 2016年05月のlog

最終更新日付:2016/05/01 00:00:00


CLにおける包括的コンパイル時解決を妄想する

2016 年 05 月 01 日

先日の個人的反省会の最後で書いた、コンパイル時解決の話。あの時は以下の3点が揃っている必要があると書いた。あ、違う4点だった。

で、具体的にやりたいことはどんなことなのか、ちょっと妄想がてら整理してみた。

Read more

 

なんとなく、正規表現

2016 年 05 月 18 日

物凄く久しぶりに、正規表現の本を読んでいる。

Read more

 

仕事が決まったけど

2016 年 05 月 19 日

次のお仕事、決まりました。6月から、ひょっとしたら半年くらいで終わってしまうかもしれないが、ひとまず日銭は稼げるかな。

Read more

 

買ってしまった

2016 年 05 月 23 日

以前から欲しかった2冊、思い余って買ってしまった。

 

Read more

 

ファンクタをfuncallableにする問題について

2016 年 05 月 24 日

さて、そろそろアレに取り組んでみようと思った。任意のクラスを funcallable にできるよ、と教えて頂いたアレだ。試行錯誤の末、とりあえず以下のような実験コードになった。

(defclass functor (sb-mop:funcallable-standard-object)
  ((closure :type     cl:function
            :initform nil
            :initarg  :closure
            :accessor functor-closure))
  (:metaclass SB-MOP:FUNCALLABLE-STANDARD-CLASS))

(defmethod initialize-instance :after ((fnctr functor) &key)
  (sb-pcl::set-funcallable-instance-function fnctr (functor-closure fnctr)))

 

まだ可搬性は意識していないので、SBCL に固有の sb-mop:funcallable-standard-object とか sb-pcl::set-funcallable-instance-function とかが露出している。また、functor クラスは実行コード自体をメンバとして保有し、initialize-instance において登録をするようになっている。これがベストの方法なのかどうかはわからない。今回は実験なので、これでひとまずパフォーマンスを見てみようかと思う。

Read more

 

ファンクタをfuncallableにする問題について-2

2016 年 05 月 26 日

前回、ひとまずはやる価値ありと判断したファンクタの funcallable 化問題。今回は実際にどんな修正をすることになるかを整理する。前回書いた内容に対しては、「このへんが参考になるよー」といった情報を Twitter 経由で頂いた。感謝致します。

Read more

 

CL-OPERATORにreferenceを追加しようかな

2016 年 05 月 28 日

今回は、CL-OPERATOR に導入しようかと思いついた reference 機能について。これは C++ における「パラメータの参照渡し」を模倣するものだ。こんなことをしようとすると Lisper の方々に取り囲まれて四方からマサカリを投げ付けられてしまうかもしれない。「多値が返せるのに、パラメータ渡ししたモノを変更する仕組みなんて!」というワケだな。わかってますって。使わなければ害はないモノなのだし、まだ導入すると決まったワケでもない。とにかく書くだけ書いておこう。

Read more

 

swapとmoveの移動について

2016 年 05 月 29 日

CL-STL の中には swapmove というのがある。現在検討中の CL-IOSTREAM にも同じモノがあり、CL-STL は将来 CL-IOSTREAM に依存することになる。このままではマズいので、共通の基盤ライブラリである CL-OPERATOR あたりに移動しようかと考えている。今回はそんな話。

Read more

 

 


Copyright(C) 2005-2017 project-enigma.
Generated by CL-PREFAB.