From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: weis Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id OAA06905 for caml-redistribution; Thu, 23 Jan 1997 14:11:15 +0100 (MET) Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id DAA25053 for ; Thu, 23 Jan 1997 03:30:19 +0100 (MET) Received: from simon.cs.cornell.edu (SIMON.CS.CORNELL.EDU [128.84.154.10]) by concorde.inria.fr (8.7.6/8.7.3) with ESMTP id DAA24439 for ; Thu, 23 Jan 1997 03:30:18 +0100 (MET) Received: from cloyd.cs.cornell.edu (CLOYD.CS.CORNELL.EDU [128.84.227.15]) by simon.cs.cornell.edu (8.8.4/8.8.4/R-1.7) with ESMTP id VAA13112 for ; Wed, 22 Jan 1997 21:30:16 -0500 (EST) Received: from tumeric (TUMERIC.CS.CORNELL.EDU [128.84.211.134]) by cloyd.cs.cornell.edu (8.8.4/8.8.4/M-1.8) with SMTP id VAA29504 for ; Wed, 22 Jan 1997 21:30:15 -0500 (EST) Message-Id: <2.2.32.19970123022704.00f74bb0@popsrv.cs.cornell.edu> X-Sender: rvr@popsrv.cs.cornell.edu X-Mailer: Windows Eudora Pro Version 2.2 (32) Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Wed, 22 Jan 1997 21:27:04 -0500 To: caml-list@pauillac.inria.fr From: Robbert VanRenesse Subject: Camouflage 1.0 Sender: weis Announcing Camouflage 1.0. Camouflage 1.0 is a tool that supports interfacing between C and OCaml. Camouflage reads a .mli file and creates the necessary C interfaces to the given module. This way the fact that a library is written in OCaml can be ``camouflaged.'' Camouflage also supports creating OCaml interfaces to C functions (``OCamlflaging'' a C library that way :-), and generates functions that convert between OCaml and C data structures. For example, let say "x.mli" contains the declaration "val add: int -> int -> int". Then the command "camou x.mli" creates a file "x.c" that contains the C function "int X_add(int, int)" which does all the stuff necessary to invoke the ML function. Vice versa, the declaration "external add: int -> int -> int" creates an ML function to invoke a corresponding C function. The current distribution (usable from Unix or Windows) may be obtained by ftp from ftp://ftp.cs.cornell.edu/pub/rvr/camou-1.0.tar.gz Bugs reports may be sent to me. Here's one bug: when invoking a C function from OCaml in interpreted mode, you can use only 5 parameters or less. Easy to fix, but I haven't done it yet... Enjoy, Robbert