load_streamの実装

4 views
Skip to first unread message

Keiji Yoshimi

unread,
Jan 3, 2009, 5:57:38 AM1/3/09
to ruby-lib...@googlegroups.com
よしみです。

2009/01/03 15:34 河野 誠 <kouno...@gmail.com>:
>
> ginkounoです。
>
>> - load_stream
>> 基本的にはloadが使い回せるかなので楽かなと思っています
>> ginkounoさんが着手中(?)
> 楽でした:-)
> commitしておきましたが、loadの使い回し部分がそのままの状態で美しくないので、
> あとでまとめる必要があります。
>
> まとめるにも、人の開発中ソース改変するのは気が引ける・・・どうしよう。
> やはり全く別のところを弄った方が良かったかなぁ。。。
>

以下のテストケースを加えると無限ループに突入します

http://github.com/cesare/ruby-libc-libyaml/commit/df0e7dbc8e24458c316bd288d8a0c142a0285cf1

見たところではYAML_NO_EVENTでループしてるっぽいです。

あとYAML_STREAM_END_EVENTとかのときに
eventが開放されてないので開放しておいた方がよいかなと思います。

それと自分も河野さんのコミットのようなものを想定していたのですが

http://jp.rubyist.net/magazine/?0010-YAML#l8

のような感じらしいです。

実装する上では以下のような点も結構重要かなと。

> ストリームを使う利点は次の2つです。
>
> * データ全体を読み込まなくても、読み込んだはしから YAML ドキュメントを取得できます。遅いネットワークから読み出す場合などに効果があります。
> * YAML ドキュメントをひとつずつ読み込むので、すべてのデータを一度に読み込むのと比べて、メモリ消費が少なくて済みます

というわけで前言撤回で結構やっかいだと思います

とりあえず自分はあとまわしにしようとおもっているのでやりたいかたがいればおまかせします

# PyYAMLを参考にするとよいかも

いっかいオフラインミーティングがあってもよいかもですね

> >
>

河野 誠

unread,
Jan 3, 2009, 8:16:06 AM1/3/09
to ruby-lib...@googlegroups.com
ginkounoです。
早速のチェックありがとうございます。
こんな感じでツッコミ入れて頂けると助かります。

YAMLの仕様を理解するのに丁度良さそうですし、とりあえず片足つっこんだので、
load_streamに関してはこのまま私の方で少しずつ実装を続けてみますね。

2009/01/03 19:57 Keiji Yoshimi <wal...@gmail.com>:
Reply all
Reply to author
Forward
0 new messages