From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id JAA27933; Thu, 17 Jul 2003 09:39:29 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id JAA24754 for ; Thu, 17 Jul 2003 09:39:28 +0200 (MET DST) Received: from granger.mail.mindspring.net (granger.mail.mindspring.net [207.69.200.148]) by nez-perce.inria.fr (8.11.1/8.11.1) with ESMTP id h6H7dRT10754 for ; Thu, 17 Jul 2003 09:39:27 +0200 (MET DST) Received: from user-0cev2rh.cable.mindspring.com ([24.239.139.113] helo=[192.168.0.3]) by granger.mail.mindspring.net with esmtp (Exim 3.33 #1) id 19d3ML-00026A-00; Thu, 17 Jul 2003 03:39:26 -0400 Subject: Re: [Caml-list] string buffer as (in|out)_channel From: "Yaron M. Minsky" To: Chris Hecker Cc: Caml List In-Reply-To: <4.3.2.7.2.20030717000026.026bcaa0@localhost> References: <4.3.2.7.2.20030717000026.026bcaa0@localhost> Content-Type: text/plain Organization: Cornell University Message-Id: <1058427564.10355.846.camel@dragonfly.localdomain> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-5) Date: 17 Jul 2003 03:39:25 -0400 Content-Transfer-Encoding: 7bit X-Loop: caml-list@inria.fr X-Spam: no; 0.00; yaron:01 minsky:01 yminsky:01 cornell:01 caml-list:01 buffer:01 low-level:01 proxies:01 sks:99 printf:01 hecker:01 formatter:01 pervasives:01 val:01 unsubscribed:99 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk I think this is the kind of place where it would make sense to use the object system. That is, in addition to the low-level in_channel and out_channel, which essentially serve as proxies for unix file-descriptor based channels, there should be I/O objects with a standard signature for files, strings, buffers, etc. I actually have done a simple version of this for myself as part of the SKS project, but I think something along these lines would be useful as a standard part of ocaml, including integration with printf and other places in the standard library that use I/O. As for your precise question, I don't myself know of any way to convert a Buffer.t to an i/o channel. y On Thu, 2003-07-17 at 03:05, Chris Hecker wrote: > Is there any way to do something similar to the C++ string stream stuff, > where you treat strings (or Buffer.t's) as in_ or out_channels? The Format > module has a formatter for strings, but there doesn't seem to be a way to > do it with Pervasives. Something like: > > val out_channel_of_buffer : Buffer.t -> out_channel > val in_channel_of_buffer : Buffer.t -> in_channel > > and maybe _of_string versions too (probably necessary because you can't > convert a string to a buffer for the in_channel), which fill up and don't > expand. > > It'd be very useful to be able to do this. > > Thanks, > Chris > > PS. Please cc me on replies, I temporarily unsubscribed from the list, thanks! > > ------------------- > To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr > Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners -- |--------/ Yaron M. Minsky \--------| |--------\ http://www.cs.cornell.edu/home/yminsky/ /--------| Open PGP --- KeyID B1FFD916 (new key as of Dec 4th) Fingerprint: 5BF6 83E1 0CE3 1043 95D8 F8D5 9F12 B3A9 B1FF D916 ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners