[Gauche-devel-jp] pack/unpack

Back to archive index

Kimura Fuyuki fuyuk****@hadal*****
2002年 12月 13日 (金) 09:12:17 JST


At Wed, 11 Dec 2002 17:37:11 -1000 (HST),
Shiro Kawai <shiro****@lava*****> wrote:
> 
> APIとして、pack/unpack系とread-*/write-* 系は両方使いでが
> あるのでいずれ用意したいですね。

Python が両方あるかんじなんですよね。あんなあたりが Gauche に向いてる
んじゃないかと。

> 実装の選択として、あくまでstream-baseでやるか、buffer-base
> (u8vector等から直接変換)も用意するかというissueがあります。
> stream-baseのread-*/write-*関数を基本にし、それらを使って
> pack/unpackを書き、bufferは内部的にstreamにして読み書きする、
> というのが素直なんですが、生のCの構造体をu8vectorにマップして
> いじりたい、というような場合は、pack!みたいな関数にバッファと
> オフセットを渡して直接読み書きできるほうが嬉しいかなと。
> 将来FFIを入れる時にも使えそうですし。

stream or buffer はたぶん stream が先、というか stream 系の API があっ
て損することはないだろうという考えです。Gauche はわりと port 指向の 
Scheme になりそうですし(buffer ベースのもいずれ必要になると思いますが)。

*

pack/unpack on Lisp についてはけっこう調べたので、せっかくだから URL 
をまとめておきます。

<ユーザーの声>

http://www.geocrawler.com/mail/msg.php3?msg_id=3190289&list=326
http://sources.redhat.com/ml/guile/2000-01/msg00343.html

<実装例>

(Lisp) http://www.newlisp.org/download/newlisp_manual.html#pack
(Emacs) http://www.geocrawler.com/mail/msg.php3?msg_id=1876323&list=338
(Scheme) http://www-2.cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/ai/lang/scheme/code/ext/strings/unpack/0.html

-- 
木村 冬樹




Gauche-devel-jp メーリングリストの案内
Back to archive index