IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Caml Discussion :

Inclusion de fichiers croisés


Sujet :

Caml

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 55
    Points : 34
    Points
    34
    Par défaut Inclusion de fichiers croisés
    Bonjour,

    Je suis loin d'être un expert en ocaml et je me retrouve face à un petit problème. J'ai 2 fichiers A.ml et B.ml

    B utilise des types de A
    A utilise des fonctions de B

    Jusqu'à présent je faisait de simple load mais la je ne peut créer les fichiers objets :/

    Comment je peut m'en sortir ?

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 36
    Points : 54
    Points
    54
    Par défaut
    Il va falloir séparer ton fichier a.ml en 2 parties :
    - un fichier a.mli qui contiendra toutes les définitions de tes types, à compiler avant de compiler b.ml
    - en fait a.ml doit rester tel quel :] (enfin je croi, quelqun me corrigera surement sur ce point là)

    ensuite pour la compilation il faut compiler a.mli, b.ml, a.ml dans l'ordre pour que ça compile bien

  3. #3
    Membre éprouvé
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Points : 1 284
    Points
    1 284
    Par défaut
    Il est tout simplement impossible de faire celà : les dépendances croisées entre unités de compilation sont interdites en Caml.

    Il n'y a qu'une seule solution permettant de ne pas casser ton code : utiliser les modules récursifs de OCaml. C'est une extension en cours de mise au point, donc pas stable a priori. Tu as toutes les informations ici, au point 7.9, Recursive modules.

    http://caml.inria.fr/pub/docs/manual...manual021.html

    La racine du document est là.

    http://caml.inria.fr/pub/docs/manual-ocaml/index.html

    Il te faudra créer un fichier c.ml contenant les modules A et B ; je te laisse lire.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 55
    Points : 34
    Points
    34
    Par défaut
    Créer un 3ème fichier c'est ce que j'avais fait en attendant de trouver une autre solution. Je vais donc garder cette solution, je n'ai pas envie de tester des options bêta alors que j'ai déjà du mal avec les possibilités de bases

    merci à vous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [debutant]inclusion de fichier .js !!!
    Par christophebmx dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/01/2005, 15h16
  2. [Inclusion des fichiers] hierarchie
    Par Casp dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 09/07/2004, 13h43
  3. XML Schema et inclusions de fichiers XML
    Par monk31 dans le forum XML/XSL et SOAP
    Réponses: 8
    Dernier message: 08/10/2003, 15h17
  4. Inclusion de fichier .h
    Par Tony49 dans le forum C++Builder
    Réponses: 2
    Dernier message: 06/11/2002, 12h10
  5. Inclusion de fichiers en IDL
    Par babou dans le forum CORBA
    Réponses: 10
    Dernier message: 30/07/2002, 17h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo