Re: ocaml et Unix

From: Xavier Leroy (Xavier.Leroy@inria.fr)
Date: Mon May 18 1998 - 15:10:43 MET DST


Date: Mon, 18 May 1998 15:10:43 +0200
From: Xavier Leroy <Xavier.Leroy@inria.fr>
To: michel@lami.univ-evry.fr, caml-list@inria.fr
Subject: Re: ocaml et Unix
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

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



This archive was generated by hypermail 2b29 : Sun Jan 02 2000 - 11:58:14 MET