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 RAA16156; Tue, 23 Jul 2002 17:16: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 RAA16039 for ; Tue, 23 Jul 2002 17:16:29 +0200 (MET DST) Received: from isis.lip6.fr (isis.lip6.fr [132.227.60.2]) by nez-perce.inria.fr (8.11.1/8.11.1) with ESMTP id g6NFGS510855 for ; Tue, 23 Jul 2002 17:16:28 +0200 (MET DST) Received: from poleia.lip6.fr (poleia.lip6.fr [132.227.201.28]) by isis.lip6.fr (8.12.4/jtpda-5.4+victor) with ESMTP id g6NFGSqr017137 for ; Tue, 23 Jul 2002 17:16:28 +0200 X-pt: isis.lip6.fr Received: from there (gauthier@pelforth.lip6.fr [132.227.204.51]) by poleia.lip6.fr (8.8.6/jtpda-5.2) with SMTP id RAA07645 for ; Tue, 23 Jul 2002 17:16:28 +0200 (MET DST) Message-Id: <200207231516.RAA07645@poleia.lip6.fr> Content-Type: text/plain; charset="iso-8859-1" From: Nadji To: caml-list@inria.fr Subject: [Caml-list] Mlfuse 1.0 Date: Tue, 23 Jul 2002 17:16:27 +0200 X-Mailer: KMail [version 1.3.2] MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Hi all, I am pleased to announce that a binding for Fuse is now available. From mlfuse/Readme's overview : Mlfuse is a binding for the Fuse (File System in User Space) library. The purpose is to be able to mount your own filesystem in a directory just like when using the "mount" utility. The system calls for reading, writing, creating files etc ... are then redirected to your own routines. With Mlfuse your routines are functions created in Ocaml. Check the examples to get a more precise idea. This enables to create nice stuff like infinite files, transparent access to compressed files, filesystem-like access to data for compatibility with other tools etc ... I think it demonstrates quite well the ability to write low-level kernel stuff in an efficient high-level languages. I think Ocaml's typing discipline makes a _far_ better documentation and permits a _lot_ more control of what can be or should be done with functions (see differences between fuse.h and fuse.mli to see what I mean ... and I'm not a guru). I also made benchmarks and I get a throughput of 80Mo/s (with all assertions, bounds checking and threads ...) with this library, while today's disks have a throughput of around 5Mo/s. So speed is not much of a concern, and Ocaml brings safety on top of this, which is the best one could hope. You can download Mlfuse at a friend's : http://www-connex.lip6.fr/~binsztok/files.php Mail me at nadji@noos.fr if you have problems. PS : I have tried to be compatible with Ocaml's Unix library data structures but there are nearly no functions available from C that can transform an ocaml value of a Unix type from the C unix corresponding type. This makes low-level bindings somewhat specific to an Ocaml version, which is a shame ... even if I doubt that the Unix layer is rapidly evolving :) If someone is interested, I have implemented separately those that I lacked in the files mlfuse/lib/unix_ml2c* ------------------- 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