From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id PAA19382 for caml-redistribution; Mon, 18 May 1998 15:40:28 +0200 (MET DST) 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 PAA25300 for ; Mon, 18 May 1998 15:10:45 +0200 (MET DST) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by concorde.inria.fr (8.8.7/8.8.7) with ESMTP id PAA26912; Mon, 18 May 1998 15:10:43 +0200 (MET DST) Received: (from xleroy@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id PAA19128; Mon, 18 May 1998 15:10:43 +0200 (MET DST) Message-ID: <19980518151043.00155@pauillac.inria.fr> Date: Mon, 18 May 1998 15:10:43 +0200 From: Xavier Leroy To: michel@lami.univ-evry.fr, caml-list@inria.fr Subject: Re: ocaml et Unix References: <199805141214.OAA09058@piaf.lami.univ-evry.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Mailer: Mutt 0.89.1 In-Reply-To: <199805141214.OAA09058@piaf.lami.univ-evry.fr>; from michel@lami.univ-evry.fr on Thu, May 14, 1998 at 02:14:23PM +0200 Sender: weis Bonjour, > un certain nombre d'appels systemes Unix ne sont pas > fournis via le module Unix sous ocaml1.07. Est-ce un choix > delibere ou seulement un manque de temps ? De manière générale, nous enrichissons l'interface Unix suivant les besoins qui se manifestent. > Je pense par exemple a : > > fnctl fnctl est un fourre-tout qui recouvre plusieurs fonctionnalités différentes. En raison du typage strict de Caml, il faudrait remonter plusieurs fonctions, une par fonctionnalité. Pour F_DUPFD, nous avons déja Unix.dup. F_GETLK, F_SETLK, F_SETLKW sont accessibles via Unix.lockf. Il manque en effet F_GETFD, F_SETFD, F_GETFL, F_SETFL. > ioctl, Comme fcntl, mais pire: le type du 3ième argument dépend de la valeur du premier! C'est donc impossible à typer en Caml. (En C aussi d'ailleurs.) D'autre part, ioctl est inutilisable quand on ne peut accéder aux constantes définies dans les includes du système, ce qui est le cas en Caml. Mieux vaut écrire en C une fonction qui fait l'appel ioctl dont vous avez besoin, et remonter cette fonction C en Caml. > pour signal(), le signal SIGIO (qui est bien POSIX). D'après mes specs, SIGIO n'est pas dans POSIX.1-1990, ni même dans Unix 98. Cordialement, - Xavier Leroy