2006-09-01から1ヶ月間の記事一覧

Unicode Properties (2)

PCREはどれだけサポートしているのかを参考にしようと思って調べてみると、全部で100個サポートしていた。(PCRE-6.7) Scriptが61個(全部)、Propertyが39個(ほとんどがGeneral Category)、Blockは無し。 鬼車もこのくらいで良いのではないかと思う。PCRE-6.7…

王座戦第二局

佐藤また負けたのか。

Unicode Properties

Unicodeサポート強化の作業を開始しよう。 最初に、Property/Block/Scriptを指定できる機能から始める。どれだけのProperty/Block/Scriptをサポートするかを決めなければならない。Perlの場合は外部ファイルにデータを出しているので、Unicodeコンソーシアム…

リリース

4.4.3をリリース。 まだ、文字列の範囲外をアクセスする場合があったので、それを修正。

強欲な繰り返し演算子 (2)

何故、このような違いがあるのかと言うと、a?+, a*+, a++が二重の繰り返しだとすると、それぞれ a*, a*, a+と簡単に書きなおせるので、そのように書く意味はない。しかし、a{n,m}+の場合には二重の繰り返しとして書く意味があるからだ。 しかし実際には、あ…

強欲な繰り返し演算子

強欲な繰り返し演算子は、ONIG_SYNTAX_RUBYとONIG_SYNTAX_JAVAでしか有効にしていない。さらに、RUBYとJAVAの場合で違いがあって、回数を数値で記述する範囲指定演算子だけは、RUBYの場合には強欲な演算子にはならない。 a?+ a*+ a++ a{n,m}+ a{n,}+ a{,m}+ …

SymbolとString (6)

SymbolとStringを区別しないで扱いたいという状況もあるだろうが、"a" == :a なのは過激すぎる。SymbolとStringを区別しないで文字列の内容が等しいかどうか比較するメソッドを追加するだけでよいのではないか? あとは、それに対応したHashクラスを追加する…

Modeling Forum 2006

Modeling Forum 2006に行ってきた。 以下の三つのセッションを聴いた。 全体最適の観点に立ったシステム構築技術 EJB3時代のアーキテクチャーパターン オントロジー入門

オントロジー入門

オントロジーに関する話は、いつも「オントロジーとは何か」「オントロジーの定義」から始まる。そして、オントロジーの捉え方は人によって違うということが付け加えられる。 今日のセッションもそうだった。そういう話は、もう聞き飽きていることに気付くべ…

SymbolとString (5)

Symbolには、文字列の内容が同値であれば同一オブジェクトという性質があり、これは今の実装でも維持されている。しかし今でも意味があるだろうか? 対象をSymbolクラスだけではなくStringクラスまで拡げて考えると、現在の仕様では、"a" == :a である。同値…

SymbolとString (4)

結局、現在のRubyの実装と上記の方法の違いは、Symbol Tableに登録されていることを、別クラスで表現するか、ビットフラグで表現するかというだけである。 現在の実装方法は、文字列としての内容が同一であれば同一のものとして扱いたいのに、それが利用者か…

SymbolとString (3)

昨日書いたのは、最後の部分が少し変だった。(2) 同じ内容のSymbolとStringを、どこからみても同一のものとして扱いたい場合 Symbolクラスをなくして全てStringクラスにする。 SymbolとStringの差は、Symbol Tableに登録されている(従ってfreeze状態になって…

リリース方法

リリースが遅れるという問題を解決するのは、そんなに難しくないと思う。リリース直前にバグ報告が集中するのは、リリースが年に一度か二度しかないからだろう。毎月一日に機械的にリリースすればよい。人間が作業する必要も無い。リリース日付をバージョン…

SymbolとString (2)

結局どうしたいのかが良くわからないが、以下のようにすれば良いのでは? (1) 同じ内容のSymbolとStringをHashのキーとして使用した場合だけ同一のものとして扱いたい場合 今までのHashクラスはそのように改修して、SymbolとStringを完全に別のものとして扱…

SymbolとString

これはどういう意図なのだろう? ruby 1.9.0 (2006-09-08) [i386-cygwin] p("a" == :a) #=> true p("a" === :a) #=> true p(:a == "a") #=> false p(:a === "a") #=> false

コメントの返事

必要な命令コードを全部追加したんですか。 でも17個なら可能な範囲ですね。 こっちは命令を増やしすぎたので、もう身動きがとれなくてどうにもなりません。

リリース

4.4.2をリリース。 バグ修正。(文字列の範囲外をアクセスして落ちる可能性があった)

look-behind (4)

しかしlook-behindの機能強化に、それほどのコストをかける必要があるのかという疑問はある。どこでも同じようにパターンが書けるというのは嬉しいことは確かだが。 look-behindを使用しないで、look-behindに含めたかったパターンをそのまま普通に書いてし…

look-behind コメントの返事 (3)

逆方向にマッチングする方法は、look-behindの実装に使用する以外に、本当の逆方向サーチに使用すると面白い気がするが、そうでもないかな?

look-behind コメントの返事 (2)

多分、きむらさんの正規表現をひっくり返して逆方向にマッチングする方法とruiさんの方法は、大筋で同じものではないでしょうか? しかし逆方向に適用すると、特に繰り返しの処理などで順方向に処理した場合と異なる結果になる可能性があるので、それにどう…

look-behind コメントの返事

文字列を逆方向に進む実装ですか。 全部の命令コードについて、逆方向版の命令を追加するのかな?それだと、命令コードの数が二倍になる。どちらの方向に進むかをモードとして切り替え可能にする?これは遅くなるのでやりたくない。 そうか、わかった。マッ…

look-behind (5) 実装アイデア

そうか、上記のことを正規表現エンジン自身がやれば良いのか。 つまり、 /(?<=A)B/というパターンを以下のように処理して、 /A(B)/最終的なキャプチャ結果を適切に返すように書き換える。 でもこれだと、look-behindが最左位置にあるときしかできないか。

GNU開発ツール

会社の帰りに奇跡的に思い出せたので、郵便局に取りに行った。 現時点での感想、厚さの割りに重量感がある。

look-behind (3)

look-behindの中のlook-behindの組合せとして、 /(?<=(?

look-behind (2)

しかし例えばPerlの場合、以下のように書けば、異なる長さの選択肢を書くことができるということを、メールで教わった。 ex. /(?<=(?<=a)b|c)/このような方法があることは初めて知ったのだが、確認してみると鬼車でも同じことができていた。

look-behind

look-behindの中で使用できるパターンは、かなり制限されている。基本的には文字長が固定でなければいけないのだが、"|"を使用した場合だけ、長さが異なるパターンも許される。 ex. /(?<=ab|c)/しかしこれを許しているのは、ONIG_SYNTAX_RUBYとONIG_SYNTAX_J…

GNU開発ツール

予約していたが、平日は留守なので未だに入手できていない。今日も郵便局に取りに行くのを忘れていた。 支払いが代金引換であることも事前に知らなかった。ホームページには書いてなかったように思うのだが。

Game Journal #20

GJ #20 魏武三国志を昨日買った。 付録ゲームの魏武三国志は、太平記システムを使った二人ゲーム。ルールを少し眺めただけだが、太平記システムをかなり忠実に使用しているみたい。このゲーム固有のアレンジとしては、派閥、イベント、軍師がある。 マップの…

柔道一直線 DVD-BOX 1

柔道一直線 DVD-BOX 1【初回生産限定】出版社/メーカー: 東映ビデオ発売日: 2006/09/21メディア: DVD クリック: 22回この商品を含むブログ (14件) を見る今のところ買うつもりはないけど。 元々、内容もはっきり覚えていない。 高松英郎が畑から大根を引き抜…

並列実行がヤバイ (2)

regsをスレッドローカルに変更したら速くなったというのは、さっぱりわからない。単に気付いたから書いただけで、関係あるとは思わなかった。