<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;C0IASXY5eip7ImA9WhRUFUU.&quot;"><id>tag:blogger.com,1999:blog-37655209</id><updated>2012-01-26T13:39:08.822+01:00</updated><category term="OS Dev" /><category term="program" /><category term="music" /><category term="travel" /><category term="language" /><category term="etc" /><category term="c++" /><category term="working holiday" /><category term="Scheme" /><category term="cook" /><category term="Netherlands" /><category term="computer" /><title>時の羅針盤＠blog</title><subtitle type="html">オランダの生活、自身が行っているSagittarius Schemeの開発日誌、&lt;br&gt;
その他雑多なことをつづってます。</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://compassoftime.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://compassoftime.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>kei</name><uri>http://www.blogger.com/profile/04280471934183261698</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/_LJ34w0XM7W4/Sp0FN-4FiUI/AAAAAAAAAMc/yyn9mbAe6F0/S220/324c3c0f.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>548</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/blogspot/compassoftime" /><feedburner:info uri="blogspot/compassoftime" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;C0IASXY4eCp7ImA9WhRUFUU.&quot;"><id>tag:blogger.com,1999:blog-37655209.post-1560820566320838207</id><published>2012-01-26T13:39:00.000+01:00</published><updated>2012-01-26T13:39:08.830+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-26T13:39:08.830+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Scheme" /><title>CLOSの動作チェック</title><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=37655209&amp;postID=1560820566320838207" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/1560820566320838207?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/1560820566320838207?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/compassoftime/~3/wrZMnEbKCMM/clos.html" title="CLOSの動作チェック" /><author><name>kei</name><uri>http://www.blogger.com/profile/04280471934183261698</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/_LJ34w0XM7W4/Sp0FN-4FiUI/AAAAAAAAAMc/yyn9mbAe6F0/S220/324c3c0f.jpg" /></author><thr:total>0</thr:total><content type="html">0.3.0に備えてCLOSの動作チェック。組込みでCLOSをサポートするため。でもCL並みに高性能にするべきか悩み中。

とりあえず、Tiny CLOSをベースにしようと考えていたので、サポートしてるmoshで検証。ただ、moshのCLOSってうっかり変なことするとすぐにハングアップするので注意が必要。せめて構文エラーとかそんなメソッドないとか言ってくれればいいのに。
今回はaround、before、after、primaryについてちょっと調べてみた。結論を言うと、完全Aspect指向って感じ。検証コードは以下。
(import (rnrs) (clos core) (clos user))
(define (print . args)
  (for-each display args) (newline))

(define-class &amp;lt;person&amp;gt; () name age)

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/GKsO1o5NYfrQaLSiFHA69-XzvC8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GKsO1o5NYfrQaLSiFHA69-XzvC8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/GKsO1o5NYfrQaLSiFHA69-XzvC8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GKsO1o5NYfrQaLSiFHA69-XzvC8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/compassoftime/~4/wrZMnEbKCMM" height="1" width="1"/&gt;</content><feedburner:origLink>http://compassoftime.blogspot.com/2012/01/clos.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MHSH46fyp7ImA9WhRUEEk.&quot;"><id>tag:blogger.com,1999:blog-37655209.post-3081658715971961059</id><published>2012-01-19T23:04:00.000+01:00</published><updated>2012-01-20T08:43:59.017+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-20T08:43:59.017+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="program" /><title>Cygwinのdlsym</title><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=37655209&amp;postID=3081658715971961059" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/3081658715971961059?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/3081658715971961059?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/compassoftime/~3/AnNR9VEzPMM/cygwindlsym.html" title="Cygwinのdlsym" /><author><name>kei</name><uri>http://www.blogger.com/profile/04280471934183261698</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/_LJ34w0XM7W4/Sp0FN-4FiUI/AAAAAAAAAMc/yyn9mbAe6F0/S220/324c3c0f.jpg" /></author><thr:total>0</thr:total><content type="html">Google先生に聞いても今わからないなぁ。とりあえず何が起きたかメモ。

SagittariusにCLOSを入れようと組み込みクラスを実装して、拡張ライブラリの方も書き換えたら動的呼び出しが失敗するようになった。理由は分からない。
確認できていることとして、Windows(MSVC)とLinux(Ubuntu、GCC)ではOK。ただ、Windowsでもそうなんだけど、Cygwinではリンカーが死んでるのか腐ってるのか知らないが、普通にコンパイルするとinitializer is not constantとか変なメッセージがでて怒られたのでC++でコンパイルしてる。VCではOKでg++では駄目だということなんだろうか？
それとも、CでコンパイルされたDLLからC++でコンパイルされたDLLを呼び出せないとか？nmコマンドで調べるとシンボルはあるから、extern "C"とかそんなレベル
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/AInvYq_3ebIEpEl3oLmTAGTjzyY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AInvYq_3ebIEpEl3oLmTAGTjzyY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/AInvYq_3ebIEpEl3oLmTAGTjzyY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AInvYq_3ebIEpEl3oLmTAGTjzyY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/compassoftime/~4/AnNR9VEzPMM" height="1" width="1"/&gt;</content><feedburner:origLink>http://compassoftime.blogspot.com/2012/01/cygwindlsym.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0AFRn86cCp7ImA9WhRVGE0.&quot;"><id>tag:blogger.com,1999:blog-37655209.post-7296418139869202352</id><published>2012-01-17T14:04:00.000+01:00</published><updated>2012-01-17T14:08:37.118+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-17T14:08:37.118+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Scheme" /><title>Version 0.2.4リリース</title><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=37655209&amp;postID=7296418139869202352" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/7296418139869202352?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/7296418139869202352?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/compassoftime/~3/sUJhDb3b-r4/version-024.html" title="Version 0.2.4リリース" /><author><name>kei</name><uri>http://www.blogger.com/profile/04280471934183261698</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/_LJ34w0XM7W4/Sp0FN-4FiUI/AAAAAAAAAMc/yyn9mbAe6F0/S220/324c3c0f.jpg" /></author><thr:total>0</thr:total><content type="html">もう少しいろいろテストしてからでもよかったかもと思いつつ。

Project page (in English)

Sagittariusバージョン0.2.4がリリースされました。このリリースからCommon Lisp風のリーダマクロが使えます。またR7RS(draft 5)をサポートしました。同ドラフトが要求している構文およびライブラリ（1部除く）をサポートしています。一部リーダが読み込むシンボルに違いがありますが、これはSagittariusがGauche風のキーワードをサポートしているためです。

修正された不具合

GC周りの不具合が修正されました。これはBoehm GCのライブラリを静的リンクしていたため起きた不具合です。現在ではGCライブラリを動的リンクしています。
 define-with-keyがGauche風に動くよう改善されました。
正規表現リーダが[[:
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/vPcKh34_m4HcsDHtHBq8AkihK2A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vPcKh34_m4HcsDHtHBq8AkihK2A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/vPcKh34_m4HcsDHtHBq8AkihK2A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vPcKh34_m4HcsDHtHBq8AkihK2A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/compassoftime/~4/sUJhDb3b-r4" height="1" width="1"/&gt;</content><feedburner:origLink>http://compassoftime.blogspot.com/2012/01/version-024.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0ANQXY9cSp7ImA9WhRVFkw.&quot;"><id>tag:blogger.com,1999:blog-37655209.post-3119652086201776535</id><published>2012-01-13T22:59:00.001+01:00</published><updated>2012-01-15T10:29:50.869+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-15T10:29:50.869+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Scheme" /><title>続R7RSモジュール</title><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=37655209&amp;postID=3119652086201776535" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/3119652086201776535?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/3119652086201776535?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/compassoftime/~3/Lnj4gjDxAr4/r7rs_13.html" title="続R7RSモジュール" /><author><name>kei</name><uri>http://www.blogger.com/profile/04280471934183261698</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/_LJ34w0XM7W4/Sp0FN-4FiUI/AAAAAAAAAMc/yyn9mbAe6F0/S220/324c3c0f.jpg" /></author><thr:total>0</thr:total><content type="html">今回は舞い上がらずに自分の中だけで。
ChatonのGauche部屋に以下の書き込みがあった。(Twitterで見てるので分かった。便利な世の中だ)

okuoku

http://compassoftime.blogspot.com/2012/01/r7rs.html R7RSライブラリ構文が来るのか

nmoshはcond-expandのfeatureとキャッシュの関連が微妙なので保留中。。

実はキャッシュの問題はまだ残っている、というか諦めていて、Sagittariusではそもそもマクロ展開後にマクロが変更されてもキャッシュは更新されない。これぐらいなら何とかなるかもしれないが面倒でやってない。
しかし、include系はまず無理で、includeされたファイルの変更を検知する方法がない。なのでinclude先が変更されてもinclude元が更新されない限りキャッシュは作り変
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/BqV2-EdiOAozF7JLIZc9LCS7xAs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BqV2-EdiOAozF7JLIZc9LCS7xAs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/BqV2-EdiOAozF7JLIZc9LCS7xAs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BqV2-EdiOAozF7JLIZc9LCS7xAs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/compassoftime/~4/Lnj4gjDxAr4" height="1" width="1"/&gt;</content><feedburner:origLink>http://compassoftime.blogspot.com/2012/01/r7rs_13.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcCQHo4eSp7ImA9WhRVE0s.&quot;"><id>tag:blogger.com,1999:blog-37655209.post-3725529417588558976</id><published>2012-01-12T09:56:00.001+01:00</published><updated>2012-01-12T11:11:01.431+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-12T11:11:01.431+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Scheme" /><title>R7RSモジュール</title><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=37655209&amp;postID=3725529417588558976" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/3725529417588558976?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/3725529417588558976?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/compassoftime/~3/m-DdTw9pyjs/r7rs.html" title="R7RSモジュール" /><author><name>kei</name><uri>http://www.blogger.com/profile/04280471934183261698</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/_LJ34w0XM7W4/Sp0FN-4FiUI/AAAAAAAAAMc/yyn9mbAe6F0/S220/324c3c0f.jpg" /></author><thr:total>0</thr:total><content type="html">次のリリースではドラフト５（たぶん確定だと信じる）のR7RSモジュールシステムが入る。まだ、include-ciがダミーな実装だがそれ以外はだいぶよさげ。
以前exportやincludeが（scheme base)からエクスポートされていないと書いたが、まじめに実装して「されていなくてもいいのか」とちょっと納得した。（includeに関しては他で使えてもいいかなぁと思ったのでexportされていてもいいんじゃとは思うが。これってR5RSで書かれたものの再利用が簡単にできるための措置なんだろうか？）

R7RSで定義されているライブラリの内、(scheme repl)は次のリリースでははずすことにした。というかinteractive-environmentが必要になる場面が想像できないのと、(scheme base)等のライブラリがimportされた環境をREPLに用意するのが大変なため
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-PrmYyPHBeE2daPHI5cldeQpQFc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-PrmYyPHBeE2daPHI5cldeQpQFc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-PrmYyPHBeE2daPHI5cldeQpQFc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-PrmYyPHBeE2daPHI5cldeQpQFc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/compassoftime/~4/m-DdTw9pyjs" height="1" width="1"/&gt;</content><feedburner:origLink>http://compassoftime.blogspot.com/2012/01/r7rs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkEMSHc4eyp7ImA9WhRVEEk.&quot;"><id>tag:blogger.com,1999:blog-37655209.post-759840357783526594</id><published>2012-01-08T17:38:00.001+01:00</published><updated>2012-01-08T17:38:09.933+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-08T17:38:09.933+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="etc" /><title>人間失格</title><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=37655209&amp;postID=759840357783526594" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/759840357783526594?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/759840357783526594?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/compassoftime/~3/Q_vlO17QHD4/blog-post_08.html" title="人間失格" /><author><name>kei</name><uri>http://www.blogger.com/profile/04280471934183261698</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/_LJ34w0XM7W4/Sp0FN-4FiUI/AAAAAAAAAMc/yyn9mbAe6F0/S220/324c3c0f.jpg" /></author><thr:total>0</thr:total><content type="html">太宰治ではない。(読んだことないなぁ、そういえば)

個人的な人格の欠陥の話である。よくも悪くも僕は淡白だと思う。というよりは人に対して一定以上の興味がわかないというべきか。正直いろいろなことを生活習慣にしていかないと傍から見た際にまったく興味がないと思われるらしい。というか既に思われた。
よくよく考えてみると自分のネコ好きというのも、その昔に自分で作った習慣のような気がする。昔から家にはネコがいるのが当たり前だったのでそれが簡単だったのだろう。
別段自分が無味乾燥な人間ではないと思うのだが、どちらかと言えば引きこもり系な性格ではあると思う。嫌なこと、楽しいこと、すべて自分の中だけで完結して表に出さない。内側で驚いていても、表面には出さないので、僕は滅多なことでは驚かない人間、と思われている。(まぁ、お化け屋敷程度では驚かないが)
 
 3つ子の魂100までなんて言われるように、これを今
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/yVkp2pwb_ezxc5B-oimY3lurr6M/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yVkp2pwb_ezxc5B-oimY3lurr6M/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/yVkp2pwb_ezxc5B-oimY3lurr6M/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yVkp2pwb_ezxc5B-oimY3lurr6M/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/compassoftime/~4/Q_vlO17QHD4" height="1" width="1"/&gt;</content><feedburner:origLink>http://compassoftime.blogspot.com/2012/01/blog-post_08.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIMSX88cCp7ImA9WhRWGU4.&quot;"><id>tag:blogger.com,1999:blog-37655209.post-2820267840341409066</id><published>2012-01-07T12:59:00.000+01:00</published><updated>2012-01-07T12:59:48.178+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-07T12:59:48.178+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="program" /><title>結局</title><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=37655209&amp;postID=2820267840341409066" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/2820267840341409066?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/2820267840341409066?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/compassoftime/~3/DIftfu6v314/blog-post_07.html" title="結局" /><author><name>kei</name><uri>http://www.blogger.com/profile/04280471934183261698</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/_LJ34w0XM7W4/Sp0FN-4FiUI/AAAAAAAAAMc/yyn9mbAe6F0/S220/324c3c0f.jpg" /></author><thr:total>0</thr:total><content type="html">Gaucheがあの方式を取れるのはMakefileを自前で書いてる(automakeではない)からであって、CMake使ってると不可能な気がしてきた。

しょうがないのでREADMEに注意書き書いてdllでリンクするようにビルドした方がいい気がする。VCでコンパイルした際にどうしようかなぁというのと(gcmt-dllとリンクできなかった。何でだろう？)、オートダウンロード機能をつかってCygwinでコンパイルした際に問題になるけど。(GCのオートダウンロードはVCだけにすればいいだろうか？でも微妙だよなぁ・・・)
そもそもGCを静的リンクにしようとした理由ってなんだっけ？
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/slvc6nyuA9kZLUwVsX695UvDpRw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/slvc6nyuA9kZLUwVsX695UvDpRw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/slvc6nyuA9kZLUwVsX695UvDpRw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/slvc6nyuA9kZLUwVsX695UvDpRw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/compassoftime/~4/DIftfu6v314" height="1" width="1"/&gt;</content><feedburner:origLink>http://compassoftime.blogspot.com/2012/01/blog-post_07.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkAHQno8fCp7ImA9WhRWGEo.&quot;"><id>tag:blogger.com,1999:blog-37655209.post-4290197762957495306</id><published>2012-01-06T14:55:00.001+01:00</published><updated>2012-01-06T20:38:53.474+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-06T20:38:53.474+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="program" /><title>足元固め(バグつぶし)</title><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=37655209&amp;postID=4290197762957495306" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/4290197762957495306?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/4290197762957495306?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/compassoftime/~3/tyxtyzjKoYA/blog-post_06.html" title="足元固め(バグつぶし)" /><author><name>kei</name><uri>http://www.blogger.com/profile/04280471934183261698</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/_LJ34w0XM7W4/Sp0FN-4FiUI/AAAAAAAAAMc/yyn9mbAe6F0/S220/324c3c0f.jpg" /></author><thr:total>0</thr:total><content type="html">ようやく不可解なメモリ関連の原因が特定できそうな気がしてきた。
現状、同じCygwinで起きる場合と起きない場合があった。今までどちらも同じ環境でビルドしていると思っていたが実は違った。片方はGCのDLLを使っていて、もう片方は静的リンクしてた。DLLの方はメモリを壊さないけど、静的リンクは壊していた。
今までメインのDLLにGCが入っていればモジュールとして呼ばれるDLLはリンクしなくてもいいと思っていたがそうでもないのだろうか？

ちょっと調査しよう。

なんでロードされたDLLがGC対象外領域になるんだろう？さっぱり分からん。
とりあえず、Windows以外の環境でBoehmGCが入ってなかったら動的ライブラリでインストールするようにメッセージ出せばいいだろうか？

静的リンクだから、それぞれのdllとexeにGCがくっつくイメージなんだろうか？中身はよく分かっていないのだが。

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/MgOx0lxEK0Ew1ZVGYFH7ApR-5a4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MgOx0lxEK0Ew1ZVGYFH7ApR-5a4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/MgOx0lxEK0Ew1ZVGYFH7ApR-5a4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MgOx0lxEK0Ew1ZVGYFH7ApR-5a4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/compassoftime/~4/tyxtyzjKoYA" height="1" width="1"/&gt;</content><feedburner:origLink>http://compassoftime.blogspot.com/2012/01/blog-post_06.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08FRXs-fip7ImA9WhRWGEk.&quot;"><id>tag:blogger.com,1999:blog-37655209.post-3411374376158749277</id><published>2012-01-06T10:23:00.000+01:00</published><updated>2012-01-06T10:23:34.556+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-06T10:23:34.556+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Scheme" /><title>sxpathメモ</title><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=37655209&amp;postID=3411374376158749277" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/3411374376158749277?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/3411374376158749277?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/compassoftime/~3/OX6OdQqpSCU/sxpath.html" title="sxpathメモ" /><author><name>kei</name><uri>http://www.blogger.com/profile/04280471934183261698</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/_LJ34w0XM7W4/Sp0FN-4FiUI/AAAAAAAAAMc/yyn9mbAe6F0/S220/324c3c0f.jpg" /></author><thr:total>0</thr:total><content type="html">SXPathで名前空間付のSXMLにクエリーを発行するのがいまいち分からなかったのでメモ。
正直これが正しいのか良く分かっていない。
(import (text sxml ssax) (text sxml sxpath) (pp))
(define *xml* "&amp;lt;?xml version=\"1.0\" ?&amp;gt;&amp;lt;root xmlns:h=\"http://localhost/\"&amp;gt;&amp;lt;h:p&amp;gt;hello&amp;lt;/h:p&amp;gt;&amp;lt;/root&amp;gt;")
(define *namespace* '((h . "http://localhost/")))
(let ((sxml (ssax:xml-&amp;gt;sxml (open-string-input-port *xml*) *namespace*))
      (sxml2 (ssax:xml-&amp;gt;sxml (open-string-input-port *xml*
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/k3Ya6Zqg9CP0ICq6TbZY_IfZaNA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/k3Ya6Zqg9CP0ICq6TbZY_IfZaNA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/k3Ya6Zqg9CP0ICq6TbZY_IfZaNA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/k3Ya6Zqg9CP0ICq6TbZY_IfZaNA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/compassoftime/~4/OX6OdQqpSCU" height="1" width="1"/&gt;</content><feedburner:origLink>http://compassoftime.blogspot.com/2012/01/sxpath.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YEQXk_eSp7ImA9WhRWGEk.&quot;"><id>tag:blogger.com,1999:blog-37655209.post-1989996688428871271</id><published>2012-01-04T20:39:00.000+01:00</published><updated>2012-01-06T11:18:20.741+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-06T11:18:20.741+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Scheme" /><title>マクロ戦争再び</title><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=37655209&amp;postID=1989996688428871271" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/1989996688428871271?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/1989996688428871271?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/compassoftime/~3/s8wmzQRcft0/blog-post_04.html" title="マクロ戦争再び" /><author><name>kei</name><uri>http://www.blogger.com/profile/04280471934183261698</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/_LJ34w0XM7W4/Sp0FN-4FiUI/AAAAAAAAAMc/yyn9mbAe6F0/S220/324c3c0f.jpg" /></author><thr:total>0</thr:total><content type="html">分かってはいたことだがsyntax-caseがバギーである。
笑ってしまったのは、明らかに意図していない動作をするコードであることでR6RSテストスイートがパスできること。バグの上に成り立つコードなんてイヤだ。

ということで何が問題かを洗い出し、対策を考えることにする。
問題とするコードはとりあえず以下のものだけに絞る。

(define-syntax loop
  (lambda (x)
    (syntax-case x ()
      ((k e ...)
       (with-syntax ((break (datum-&amp;gt;syntax #'k 'break))
         #'(call-with-current-continuation
             (lambda (break)
               (let f () e ... (f)
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Q2p4hbZu16Ktd1ym_FhRG_JXgA4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Q2p4hbZu16Ktd1ym_FhRG_JXgA4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Q2p4hbZu16Ktd1ym_FhRG_JXgA4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Q2p4hbZu16Ktd1ym_FhRG_JXgA4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/compassoftime/~4/s8wmzQRcft0" height="1" width="1"/&gt;</content><feedburner:origLink>http://compassoftime.blogspot.com/2012/01/blog-post_04.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4DRHY8cCp7ImA9WhRWFkU.&quot;"><id>tag:blogger.com,1999:blog-37655209.post-7860557893719182156</id><published>2012-01-04T13:13:00.001+01:00</published><updated>2012-01-04T14:32:55.878+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-04T14:32:55.878+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Scheme" /><title>(続)R7RSドラフト5</title><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=37655209&amp;postID=7860557893719182156" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/7860557893719182156?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/7860557893719182156?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/compassoftime/~3/HrIY1_NGOD4/r7rs5_04.html" title="(続)R7RSドラフト5" /><author><name>kei</name><uri>http://www.blogger.com/profile/04280471934183261698</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/_LJ34w0XM7W4/Sp0FN-4FiUI/AAAAAAAAAMc/yyn9mbAe6F0/S220/324c3c0f.jpg" /></author><thr:total>0</thr:total><content type="html">ここから大きく変更はないだろうと仮定してdefine-libraryの実装に踏み切ろうかと思う。
定義を見ると、export、import、begin、include、include-ci、cond-expandがlibrary declarationとして定義されていて、それらが中に何度出てきてもよさそうな感じである(一回だけとか書いてないからそう読む)。
問題になりそうなのはexport、import、とcond-expandあたりだろう。
exportが2回以上出てきた際の扱いが書いてない。 両方をexportするのか、エラーではじくのか、処理系依存になるのだろうか？
importが複数回でた場合も特に記載がない。例えば以下のケース。

(define-library (import test)
  (import (scheme))
  (begin
    (define 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mIVmqCkw69oJogpjmyHcVXDotJY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mIVmqCkw69oJogpjmyHcVXDotJY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mIVmqCkw69oJogpjmyHcVXDotJY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mIVmqCkw69oJogpjmyHcVXDotJY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/compassoftime/~4/HrIY1_NGOD4" height="1" width="1"/&gt;</content><feedburner:origLink>http://compassoftime.blogspot.com/2012/01/r7rs5_04.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8FQHw_cSp7ImA9WhRWFkw.&quot;"><id>tag:blogger.com,1999:blog-37655209.post-6811911613865914678</id><published>2012-01-02T17:18:00.000+01:00</published><updated>2012-01-03T20:10:11.249+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-03T20:10:11.249+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Scheme" /><title>R7RSドラフト5</title><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=37655209&amp;postID=6811911613865914678" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/6811911613865914678?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/6811911613865914678?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/compassoftime/~3/2ycfi7O5LKQ/r7rs5.html" title="R7RSドラフト5" /><author><name>kei</name><uri>http://www.blogger.com/profile/04280471934183261698</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/_LJ34w0XM7W4/Sp0FN-4FiUI/AAAAAAAAAMc/yyn9mbAe6F0/S220/324c3c0f.jpg" /></author><thr:total>0</thr:total><content type="html">ちょっとまじめに眺めている。
その際に見つけた気になる部分のメモ。

2.1 Identifiersより

All implementations of Scheme must support the following
extended identifier characters:
! $ % &amp;amp; * + - . / : &amp;lt; = &amp;gt; ? @ ^ _ ~
「:」は識別しじゃないとだめらしい。キーワードはだめってこと？ (拡張という扱いにしよう、そうしよう)

4.2.1 Conditionalsより
caseはcond同様=&amp;gt;をサポートしないといけないらしい。

4.2.5 Delayed evaluationより
eagerって何だ？

The eager procedure returns a promise which when forced
will return obj . 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/W1Yq8sxcGQUAsSwkuJjsCbbg4Uc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/W1Yq8sxcGQUAsSwkuJjsCbbg4Uc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/W1Yq8sxcGQUAsSwkuJjsCbbg4Uc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/W1Yq8sxcGQUAsSwkuJjsCbbg4Uc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/compassoftime/~4/2ycfi7O5LKQ" height="1" width="1"/&gt;</content><feedburner:origLink>http://compassoftime.blogspot.com/2012/01/r7rs5.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ADRn87cSp7ImA9WhRWFEQ.&quot;"><id>tag:blogger.com,1999:blog-37655209.post-808094286042060593</id><published>2012-01-02T09:09:00.000+01:00</published><updated>2012-01-02T09:09:37.109+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-02T09:09:37.109+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="etc" /><category scheme="http://www.blogger.com/atom/ns#" term="Scheme" /><title>謹賀新年</title><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=37655209&amp;postID=808094286042060593" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/808094286042060593?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/808094286042060593?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/compassoftime/~3/r9A4FVxaBrU/blog-post.html" title="謹賀新年" /><author><name>kei</name><uri>http://www.blogger.com/profile/04280471934183261698</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/_LJ34w0XM7W4/Sp0FN-4FiUI/AAAAAAAAAMc/yyn9mbAe6F0/S220/324c3c0f.jpg" /></author><thr:total>0</thr:total><content type="html">Happy new year!!
 Beste wensen, gelukkige nieuwjaar!!
本年もよろしくお願いいたします。

元旦はわりと忙しくてかけなかった。

今年の抱負(というか目標)

週2くらいでジムに行く
オランダ語を話せるようになる
 ギターを毎日少しでもいいので練習する

書いておいて年末にできたかどうか確認しよう。
去年は個人プロジェクトを発足するということを書いたみたいだ、目標達成ではあるか？

個人的な近況報告できるほど変化があったわけではないのが寂しい。

以下はSagittariusな話題。



去年までの概観
ソースを公開してまだ1年たっていないというのには自分でも驚きだ。まだまだ不安定な部分があるが、個人的に必要な部分はそろってきて感がある。
ドキュメントの整備とドキュメント化されていない(意図的なものも含む)ライブラリ
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/PmLXur5Jd6pMh-pFu9V-tq4wN8g/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PmLXur5Jd6pMh-pFu9V-tq4wN8g/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/PmLXur5Jd6pMh-pFu9V-tq4wN8g/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PmLXur5Jd6pMh-pFu9V-tq4wN8g/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/compassoftime/~4/r9A4FVxaBrU" height="1" width="1"/&gt;</content><feedburner:origLink>http://compassoftime.blogspot.com/2012/01/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMHQn45eip7ImA9WhRWEUQ.&quot;"><id>tag:blogger.com,1999:blog-37655209.post-8136386231475014384</id><published>2011-12-29T21:38:00.002+01:00</published><updated>2011-12-29T22:00:33.022+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-29T22:00:33.022+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Scheme" /><title>括弧ゴルフ</title><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=37655209&amp;postID=8136386231475014384" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/8136386231475014384?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/8136386231475014384?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/compassoftime/~3/fYI-pZVOmnE/blog-post_1447.html" title="括弧ゴルフ" /><author><name>kei</name><uri>http://www.blogger.com/profile/04280471934183261698</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/_LJ34w0XM7W4/Sp0FN-4FiUI/AAAAAAAAAMc/yyn9mbAe6F0/S220/324c3c0f.jpg" /></author><thr:total>0</thr:total><content type="html">折角リーダーマクロを作ったし括弧ゴルフでもしてみるかとやってみた。以下のサイトのルールで。
本当にLispはカッコが多い？
最後にあるLispのリーダーマクロを参考にGaucheのfoldを使ったケースを実装してみた。
#! /usr/local/bin/sash
(set-macro-character #\! (lambda (p c) (read-delimited-list #\$ p)))
! import ! srfi :1 $ $
! fold ! lambda ! x y $ ! print ! - x 1 $ "!= " y $ ! * x y $ $ 1
  ! iota ! string-&amp;gt;number ! cadr ! command-line $ $ $ 2 $ $

まぁ、ある意味当たり前だが、括弧8個でいける。
set-macro-characterは本来は
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Wo6BTwgQaZbO0BvU4RzX3sMTtPg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Wo6BTwgQaZbO0BvU4RzX3sMTtPg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Wo6BTwgQaZbO0BvU4RzX3sMTtPg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Wo6BTwgQaZbO0BvU4RzX3sMTtPg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/compassoftime/~4/fYI-pZVOmnE" height="1" width="1"/&gt;</content><feedburner:origLink>http://compassoftime.blogspot.com/2011/12/blog-post_1447.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIFRXsyfSp7ImA9WhRWEUo.&quot;"><id>tag:blogger.com,1999:blog-37655209.post-4807223141497446788</id><published>2011-12-29T15:49:00.003+01:00</published><updated>2011-12-29T17:35:14.595+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-29T17:35:14.595+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Scheme" /><title>リーダーマクロが動いた</title><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=37655209&amp;postID=4807223141497446788" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/4807223141497446788?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/4807223141497446788?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/compassoftime/~3/4rOJJef8ITw/blog-post_29.html" title="リーダーマクロが動いた" /><author><name>kei</name><uri>http://www.blogger.com/profile/04280471934183261698</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/_LJ34w0XM7W4/Sp0FN-4FiUI/AAAAAAAAAMc/yyn9mbAe6F0/S220/324c3c0f.jpg" /></author><thr:total>0</thr:total><content type="html">まだ、あまりテストしていないが、簡単なリーダーマクロが動いた。
とりあえず当初の目的の通り正規表現を#/regex/と書ける様にしてみた。こんな感じ。

#&amp;lt;(sagittarius regex)
(import (sagittarius regex))
(define rx #/\w+/)
(print (regex-replace-all rx "abcdef@abcdef" "**$0**"))

もちろん#/regex/ixumsのようにも書ける。
汚いなぁと思うのは#&amp;lt;(ライブラリ)のように書かないとリーダーマクロがインポートされない部分。上記のようなプログラムなら(import)がやっても一緒なのだが、ライブラリが問題になってくるので、こんな風にした。
また、loadしたファイルの影響を受けると意味が分からなくなるので影響範囲はファイル単位になっている。

括弧ゴルフに勝つる
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/grn6gm3_Y55cIuIwK_LNdDhoqk4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/grn6gm3_Y55cIuIwK_LNdDhoqk4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/grn6gm3_Y55cIuIwK_LNdDhoqk4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/grn6gm3_Y55cIuIwK_LNdDhoqk4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/compassoftime/~4/4rOJJef8ITw" height="1" width="1"/&gt;</content><feedburner:origLink>http://compassoftime.blogspot.com/2011/12/blog-post_29.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MCR3s4eSp7ImA9WhRXFks.&quot;"><id>tag:blogger.com,1999:blog-37655209.post-1763099316908674430</id><published>2011-12-23T17:52:00.000+01:00</published><updated>2011-12-23T18:31:06.531+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-23T18:31:06.531+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Scheme" /><title>Linuxでコンパイルさせるためのメモ</title><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=37655209&amp;postID=1763099316908674430" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/1763099316908674430?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/1763099316908674430?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/compassoftime/~3/3gWpK3jqhI8/linux.html" title="Linuxでコンパイルさせるためのメモ" /><author><name>kei</name><uri>http://www.blogger.com/profile/04280471934183261698</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/_LJ34w0XM7W4/Sp0FN-4FiUI/AAAAAAAAAMc/yyn9mbAe6F0/S220/324c3c0f.jpg" /></author><thr:total>0</thr:total><content type="html">tarボールでコンパイルさせるテストの一環。 
そのうちソースに反映させるが、忘れないようにメモしておこう。

xubuntu 10.xx(細かいバージョン忘れた)ではapt-getでインストールできるcmakeのバージョンが2.8.3だったので、CMakeLists.txtの先頭行にあるバージョンを2.8.3にしてテスト。

手直しが必要だったファイル：

 library.c
core.c 
transcoder.c 
system.c
load.c 
test-lib.c
src/CMakeLists.txt 
ext/ffi/CMakeLists.txt

library.cとsystem.cはミューテックスの初期化問題。まじめにInit関数でやりましょう。特にlibrary.cはInit関数がないので作成して、core.cで呼ぶ必要がある。
system.cは&amp;lt;io.h&amp;gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/KRGdxLTWDQCCkt5siLq26N2rAeo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KRGdxLTWDQCCkt5siLq26N2rAeo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/KRGdxLTWDQCCkt5siLq26N2rAeo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KRGdxLTWDQCCkt5siLq26N2rAeo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/compassoftime/~4/3gWpK3jqhI8" height="1" width="1"/&gt;</content><feedburner:origLink>http://compassoftime.blogspot.com/2011/12/linux.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUERn8_eyp7ImA9WhRXFkk.&quot;"><id>tag:blogger.com,1999:blog-37655209.post-4805182881193041631</id><published>2011-12-23T13:10:00.001+01:00</published><updated>2011-12-23T13:10:07.143+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-23T13:10:07.143+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Scheme" /><title>バージョン0.2.3リリース</title><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=37655209&amp;postID=4805182881193041631" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/4805182881193041631?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/4805182881193041631?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/compassoftime/~3/bjNAGUK7J9M/023.html" title="バージョン0.2.3リリース" /><author><name>kei</name><uri>http://www.blogger.com/profile/04280471934183261698</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/_LJ34w0XM7W4/Sp0FN-4FiUI/AAAAAAAAAMc/yyn9mbAe6F0/S220/324c3c0f.jpg" /></author><thr:total>0</thr:total><content type="html">今までextディレクトリをtarボールに入れ忘れていたということに気づいて、今回からはそれらが入ってきます。(ということは今までのtarボールってコンパイルすらできなかったということだろうか・・・試してないからなぁ。今後は試すようにしよう。)

今回のリリースは後の拡張に備えたメンテナンスリリースです。

修正された不具合：

ライブラリインラインでマーキングミスがあったのが修正されました
bitwise-first-set-bitにbignumを与えた際、不正な値を返すことがあった不具合が修正されました
renameエクスポートが正しく動作していない不具合が修正されました

改善された動作

文字セットが組み込みになりました
gcdにbignumを与えた際のパフォーマンスが改善されました。メモリの使用量が大幅に減っているはずです
正規表現ライブラリが新たに書き直されました。単純な
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/eY9amF4rOtLU0vHUgqscgcGVDxw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eY9amF4rOtLU0vHUgqscgcGVDxw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/eY9amF4rOtLU0vHUgqscgcGVDxw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eY9amF4rOtLU0vHUgqscgcGVDxw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/compassoftime/~4/bjNAGUK7J9M" height="1" width="1"/&gt;</content><feedburner:origLink>http://compassoftime.blogspot.com/2011/12/023.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIDSXY8fSp7ImA9WhRXFk4.&quot;"><id>tag:blogger.com,1999:blog-37655209.post-2319143569524838841</id><published>2011-12-23T11:52:00.002+01:00</published><updated>2011-12-23T11:52:58.875+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-23T11:52:58.875+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="program" /><category scheme="http://www.blogger.com/atom/ns#" term="Scheme" /><title>根本的な解決ではないが</title><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=37655209&amp;postID=2319143569524838841" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/2319143569524838841?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/2319143569524838841?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/compassoftime/~3/2ZPodhpKTS0/blog-post_23.html" title="根本的な解決ではないが" /><author><name>kei</name><uri>http://www.blogger.com/profile/04280471934183261698</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/_LJ34w0XM7W4/Sp0FN-4FiUI/AAAAAAAAAMc/yyn9mbAe6F0/S220/324c3c0f.jpg" /></author><thr:total>0</thr:total><content type="html">RSA鍵の作成時に素数チェックにgcdを使用していて、Bignumのgcdが非常にナイーブな実装だったため大量のメモリを使用していた。そこで、binary GCDを実装して、メモリの割り当てが最大で4回になるように実装しなおした。そしたら、前述の不具合はとりあえずなりを潜めたのであった。
(あんまり高速化にはなっていないっぽい。512ビットの鍵ペアを作るのに2秒かかる[Core2Duo 3GHz]。Javaでは109ミリセコンドという、20分の1の時間で生成された。う～む)

Windows版のSagittariusでもそれなりにいけるようになってきたような気はするが、テストを走らせると失敗するケースが1つ増えた。正規表現ライブラリを置き換えたからかもしれない。かなりテストを書いたがまだカバーしきれてないらしい。でもテスト外で同じ正規表現、同じ文字列でマッチさせるときっちりマッチ
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Udp8ncTUSHucQOyxeNeGlLEeqMg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Udp8ncTUSHucQOyxeNeGlLEeqMg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Udp8ncTUSHucQOyxeNeGlLEeqMg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Udp8ncTUSHucQOyxeNeGlLEeqMg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/compassoftime/~4/2ZPodhpKTS0" height="1" width="1"/&gt;</content><feedburner:origLink>http://compassoftime.blogspot.com/2011/12/blog-post_23.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIFRn48fCp7ImA9WhRXFUk.&quot;"><id>tag:blogger.com,1999:blog-37655209.post-8740306236867531862</id><published>2011-12-22T09:28:00.002+01:00</published><updated>2011-12-22T09:28:37.074+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-22T09:28:37.074+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="program" /><title>バグの原因究明</title><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=37655209&amp;postID=8740306236867531862" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/8740306236867531862?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/8740306236867531862?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/compassoftime/~3/13feltQFYpU/blog-post_22.html" title="バグの原因究明" /><author><name>kei</name><uri>http://www.blogger.com/profile/04280471934183261698</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/_LJ34w0XM7W4/Sp0FN-4FiUI/AAAAAAAAAMc/yyn9mbAe6F0/S220/324c3c0f.jpg" /></author><thr:total>0</thr:total><content type="html">Sagittariusにはドキュメント化されていないライブラリが結構ある。理由はさまざまで、APIが固定されていないとか、近い将来変更になるのでその後とか、バグが取れてないとか、まぁいろいろだ。
その中の「バグが取れていない」の代表格暗号化ライブラリでどこに不具合があるのかがようやく分かった。
結論を言えば、メモリ割り当ての際にオーバーラップして割り当てているせいで、メモリ破壊を起こしているというものだ。
原因はおそらく2つに分けられるだろうが、１つはBoehmGCがマークミスを起こしている。これは回避しようがないので、あきらめるしかない。もう一つは何らかの理由により、割り当てたメモリが使われていないという状態になり、GCによって回収されている(一緒くさいな・・・)。とりあえず前者っぽい挙動をしている。なぜだ？

今回はどうやって直すかというのではなく、どうやって探したかをメモしておく。
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qF4Aq91CB8v3LM9UdSA5YIhVpqM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qF4Aq91CB8v3LM9UdSA5YIhVpqM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qF4Aq91CB8v3LM9UdSA5YIhVpqM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qF4Aq91CB8v3LM9UdSA5YIhVpqM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/compassoftime/~4/13feltQFYpU" height="1" width="1"/&gt;</content><feedburner:origLink>http://compassoftime.blogspot.com/2011/12/blog-post_22.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUABRHs_eyp7ImA9WhRXE0Q.&quot;"><id>tag:blogger.com,1999:blog-37655209.post-1829201736768649752</id><published>2011-12-20T16:02:00.000+01:00</published><updated>2011-12-20T16:09:15.543+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-20T16:09:15.543+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Scheme" /><title>ベンチマークとって見た</title><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=37655209&amp;postID=1829201736768649752" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/1829201736768649752?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/1829201736768649752?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/compassoftime/~3/bbqQ9_f2QKo/blog-post_20.html" title="ベンチマークとって見た" /><author><name>kei</name><uri>http://www.blogger.com/profile/04280471934183261698</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/_LJ34w0XM7W4/Sp0FN-4FiUI/AAAAAAAAAMc/yyn9mbAe6F0/S220/324c3c0f.jpg" /></author><thr:total>0</thr:total><content type="html">新正規表現ライブラリのテストを書いているのだが、どの程度速く(もしくは遅く)なったのか知りたかったので、比較してみた。
コードは以下

(add-dynamic-load-path "./build")
(add-load-path "./sitelib")
(load-dynamic-library "sagittarius--regex2")
(load-dynamic-library "sagittarius--regex")
(import (rnrs)
 (time)
 (srfi :13) (srfi :1))

(define bench
  '(begin
     (define-syntax bench-regex
       (syntax-rules ()
  ((_)
   (begin
     (define rx
       (
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/GM0Vksg3heaNaIVli8zXw59kM1Y/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GM0Vksg3heaNaIVli8zXw59kM1Y/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/GM0Vksg3heaNaIVli8zXw59kM1Y/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GM0Vksg3heaNaIVli8zXw59kM1Y/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/compassoftime/~4/bbqQ9_f2QKo" height="1" width="1"/&gt;</content><feedburner:origLink>http://compassoftime.blogspot.com/2011/12/blog-post_20.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUABSHY_fyp7ImA9WhRXE08.&quot;"><id>tag:blogger.com,1999:blog-37655209.post-1164473311361995897</id><published>2011-12-19T21:49:00.001+01:00</published><updated>2011-12-19T21:49:19.847+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-19T21:49:19.847+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Scheme" /><title>ハイブリッドVM(正規表現)</title><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=37655209&amp;postID=1164473311361995897" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/1164473311361995897?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/1164473311361995897?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/compassoftime/~3/cnjNNIWYGzE/vm.html" title="ハイブリッドVM(正規表現)" /><author><name>kei</name><uri>http://www.blogger.com/profile/04280471934183261698</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/_LJ34w0XM7W4/Sp0FN-4FiUI/AAAAAAAAAMc/yyn9mbAe6F0/S220/324c3c0f.jpg" /></author><thr:total>0</thr:total><content type="html">正規表現を書き書き直している最中、RE1とRE2を参考にしたPikeVMでは肯定先読み系はおろかpossessiveマッチさえも実装が困難だということに気づいた。
そこでとりあえず普通に再帰を使って書いてみたら恐ろしく遅かった。
どうしたらいいかなぁと電車の中で考えていたら、「ハイブリッドにしちまえよ」という悪魔のささやきが聞こえたのでやってみた。

どうしたか？
拡張正規表現(ここでは上記の2つ＋バックリファレンスを指します)を除いた単純な正規表現のみで記述されたパターンはPikeVMで動かし、えらいごてごてした正規表現は再帰を使ったVMで動かしてみた。
これやるとおそらくpossessiveマッチで書いた方が遅いという不思議現象が起きるがそれは置いておいて、後読み(と後方参照もかな？)を除いた210個の単体テストが通った。遅いVMだと異常に実装が楽だったが、涙が出るほど遅く、
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/P7ySB-2s1QjtkfoAQLCHqEbUotU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/P7ySB-2s1QjtkfoAQLCHqEbUotU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/P7ySB-2s1QjtkfoAQLCHqEbUotU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/P7ySB-2s1QjtkfoAQLCHqEbUotU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/compassoftime/~4/cnjNNIWYGzE" height="1" width="1"/&gt;</content><feedburner:origLink>http://compassoftime.blogspot.com/2011/12/vm.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8AQX0-fCp7ImA9WhRWFkw.&quot;"><id>tag:blogger.com,1999:blog-37655209.post-3401918821845473444</id><published>2011-12-16T23:13:00.001+01:00</published><updated>2012-01-03T20:10:40.354+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-03T20:10:40.354+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="etc" /><category scheme="http://www.blogger.com/atom/ns#" term="language" /><title>ふと、テレビを見ていて思ったこと</title><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=37655209&amp;postID=3401918821845473444" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/3401918821845473444?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/3401918821845473444?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/compassoftime/~3/wwq6TwDi-Fc/blog-post_16.html" title="ふと、テレビを見ていて思ったこと" /><author><name>kei</name><uri>http://www.blogger.com/profile/04280471934183261698</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/_LJ34w0XM7W4/Sp0FN-4FiUI/AAAAAAAAAMc/yyn9mbAe6F0/S220/324c3c0f.jpg" /></author><thr:total>0</thr:total><content type="html">標題に似合わず英語関連です。

文自体は忘れたが、その中にあった単語「labour」を見てふと思ったこと。
そういえば、上記の単語は自然な感じだが、「labor」と書かれると不自然な感じがする。いや、単に英語と米語の違い名だけで意味は一緒なのだが。っでなんとなく自然に感じるつづりと不自然感じがするつづりを並べてみた。

ちょっとしたつづりの比較

英語米語自然だと感じる方


colourcolorcolor
labourlaborlabour
behaviourbehavior両方OK
favourfavor両方OK
favouritefavoritefavourite
centrecentercenter
theatretheater両方OK


とりあえず思いついたのがこんな感じだった。不思議と「ou」になるのが自然と感じるみたいだが、さすがに「color」はこっちのが自然だ。「
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/eUF8rxq6RafwPqXIyGCS1WC2EWk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eUF8rxq6RafwPqXIyGCS1WC2EWk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/eUF8rxq6RafwPqXIyGCS1WC2EWk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eUF8rxq6RafwPqXIyGCS1WC2EWk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/compassoftime/~4/wwq6TwDi-Fc" height="1" width="1"/&gt;</content><feedburner:origLink>http://compassoftime.blogspot.com/2011/12/blog-post_16.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8HQXszcSp7ImA9WhRWFkw.&quot;"><id>tag:blogger.com,1999:blog-37655209.post-9025347846281494416</id><published>2011-12-15T20:54:00.000+01:00</published><updated>2012-01-03T20:10:30.589+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-03T20:10:30.589+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="program" /><category scheme="http://www.blogger.com/atom/ns#" term="Scheme" /><title>正規表現実装中</title><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=37655209&amp;postID=9025347846281494416" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/9025347846281494416?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/9025347846281494416?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/compassoftime/~3/4oOnZkDUs0E/blog-post_15.html" title="正規表現実装中" /><author><name>kei</name><uri>http://www.blogger.com/profile/04280471934183261698</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/_LJ34w0XM7W4/Sp0FN-4FiUI/AAAAAAAAAMc/yyn9mbAe6F0/S220/324c3c0f.jpg" /></author><thr:total>0</thr:total><content type="html">ぶっちゃけ行き詰ったのでちょっと問題点の洗い出し。

出来てそうなこと

 greedyマッチ
non-greedyマッチ
スタートとエンドアンカー
単語境界
グループ(キャプチャリングとそうじゃないの含む)
文字クラス

出来がやばそうなの

肯定、否定先読み及び後読み
possessiveマッチ

やばそうなのもある程度は動いてるんだけど、パターンによっては簡単に無限ループに入る。
例えばこんなパターン

\D(?!123)
っで、"ABC123"を与えた場合、文字「C」にマッチしなければいけないが、マッチしない。また、パターンが

\D*(?!123)
になると無限ループする。(ほとんど出来て無いじゃん！)
原因は幅0を実装しているところにあって、2つ目のパターンだと、文字「A」は「\D」と否定先読みの両方を見る。っで、否定先読み(肯定でも)の条件にマッチすると、次の文字に行
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/XJvOx9KCNKfAFDMfXWGM-l2oeAo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XJvOx9KCNKfAFDMfXWGM-l2oeAo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/XJvOx9KCNKfAFDMfXWGM-l2oeAo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XJvOx9KCNKfAFDMfXWGM-l2oeAo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/compassoftime/~4/4oOnZkDUs0E" height="1" width="1"/&gt;</content><feedburner:origLink>http://compassoftime.blogspot.com/2011/12/blog-post_15.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQBR3Y-fSp7ImA9WhRQF08.&quot;"><id>tag:blogger.com,1999:blog-37655209.post-5764158761841955430</id><published>2011-12-12T21:25:00.000+01:00</published><updated>2011-12-12T21:39:16.855+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-12T21:39:16.855+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Scheme" /><title>ジョークプログラム(sleep sort)</title><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=37655209&amp;postID=5764158761841955430" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/5764158761841955430?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/5764158761841955430?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/compassoftime/~3/-bdLqtBsYM8/blog-post_1340.html" title="ジョークプログラム(sleep sort)" /><author><name>kei</name><uri>http://www.blogger.com/profile/04280471934183261698</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/_LJ34w0XM7W4/Sp0FN-4FiUI/AAAAAAAAAMc/yyn9mbAe6F0/S220/324c3c0f.jpg" /></author><thr:total>0</thr:total><content type="html">sleep sortなるものを実装してみた。
元ネタはここGenius sorting algorithm: Sleep sort 
消えてると寂しいので一応引用。

Genius sorting algorithm: Sleep sort
1 Name: Anonymous : 2011-01-20 12:22
    Man, am I a genius. Check out this sorting algorithm I just invented

    #!/bin/bash
    function f() {
        sleep "$1"
        echo "$1"
    }
    while [ -n "$1" ]
    do
        f "$1" &amp;amp;
        shift
    done
    wait

    
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/5e1e_JH4pihMlmOrtrSavmjoR4k/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5e1e_JH4pihMlmOrtrSavmjoR4k/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/5e1e_JH4pihMlmOrtrSavmjoR4k/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5e1e_JH4pihMlmOrtrSavmjoR4k/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/compassoftime/~4/-bdLqtBsYM8" height="1" width="1"/&gt;</content><feedburner:origLink>http://compassoftime.blogspot.com/2011/12/blog-post_1340.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUAHQ305cSp7ImA9WhRQF0w.&quot;"><id>tag:blogger.com,1999:blog-37655209.post-8382282206109776655</id><published>2011-12-12T20:22:00.000+01:00</published><updated>2011-12-12T20:22:12.329+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-12T20:22:12.329+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="etc" /><category scheme="http://www.blogger.com/atom/ns#" term="language" /><title>英語に対する感覚</title><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=37655209&amp;postID=8382282206109776655" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/8382282206109776655?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/37655209/posts/default/8382282206109776655?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/compassoftime/~3/-TPt-qf_FlM/blog-post_12.html" title="英語に対する感覚" /><author><name>kei</name><uri>http://www.blogger.com/profile/04280471934183261698</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/_LJ34w0XM7W4/Sp0FN-4FiUI/AAAAAAAAAMc/yyn9mbAe6F0/S220/324c3c0f.jpg" /></author><thr:total>0</thr:total><content type="html">前に英語で書いた記事にコメントが付いていた(スパム扱いされていたので気づくのに遅れた)。
これはそのコメントを読んでちょっと気になったことについて。
 
 前置きとして、批判的な意味合いはまったく無く、コメントやご指摘がいただけるのは非常にうれしいことだと考えています。もしここから以下を読んで不快に思われたらごめんなさい。ということで一応分けてみる。やたら長くなったし。



いただいたコメントは僕の拙い英語に対してのご指摘だったのだけど、ふと思ったのは「何故英語の記事にだけそんなコメントが着いたのだろうか？」ということ。もう少し端的に言えば、「僕の拙い日本語も指摘してほしいなぁ」ということ。
まぁ、それだけではツイッターレベルなのでもう少しそれについての考察。何故それが気になるのか？もちろん個人の感性にもよるのだろうが、例えばそれが日本語で

生地を感想させないように霧吹き等で湿
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/nrtbKjIj9vxYpAPkZ8z092qAdoc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nrtbKjIj9vxYpAPkZ8z092qAdoc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/nrtbKjIj9vxYpAPkZ8z092qAdoc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nrtbKjIj9vxYpAPkZ8z092qAdoc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/compassoftime/~4/-TPt-qf_FlM" height="1" width="1"/&gt;</content><feedburner:origLink>http://compassoftime.blogspot.com/2011/12/blog-post_12.html</feedburner:origLink></entry></feed>

