From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=AWL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by yquem.inria.fr (Postfix) with ESMTP id 0F4A7BBAF for ; Fri, 13 Mar 2009 02:02:47 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ah8CAN9NuUmAcIhIkWdsb2JhbACVNAEBAQEJCwoHEQWsH4YjiE2DfgY X-IronPort-AV: E=Sophos;i="4.38,354,1233529200"; d="scan'208";a="24257913" Received: from redflag.cs.princeton.edu ([128.112.136.72]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 13 Mar 2009 02:02:46 +0100 Received: from [192.168.0.100] (H-135-207-240-11.research.att.com [135.207.240.11]) (authenticated bits=0) by redflag.CS.Princeton.EDU (8.13.8/8.13.8) with ESMTP id n2D12ex3017524 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT) for ; Thu, 12 Mar 2009 21:02:44 -0400 (EDT) Message-Id: <0E8C587F-F0BF-4B4D-A4A5-88ADB632D3F5@cs.princeton.edu> From: Yitzhak Mandelbaum To: Caml-list List Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v930.3) Subject: buffered io library Date: Thu, 12 Mar 2009 21:02:39 -0400 X-Mailer: Apple Mail (2.930.3) X-Proofpoint-Virus-Version: vendor=nai engine=5.3.00 definitions=5551 signatures=505777 X-Proofpoint-Spam-Reason: safe X-Spam: no; 0.00; yitzhak:01 mandelbaum:01 buffered:01 lexers:01 lexing:01 yitzhak:01 mandelbaum:01 api:02 module:03 library:03 library:03 stream:04 stream:04 expose:04 princeton:06 Hi, I'm looking for an efficient IO library geared towards support for things like lexers. The essential features are: * Support for easily backing up in the IO stream. That is, it should have an API for saving one's place and then later discarding that save (i.e. committing to current position) or restoring the IO stream to the saved location. * Support for extracting and/or accessing sections of the stream (particularly, those between the last save point and the current position). It looks like the Lexing module has these features baked in, but it doesn't seem to expose them to the user. Does anyone have any other suggestions? Thanks, Yitzhak ----------------------------- Yitzhak Mandelbaum