From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by walapai.inria.fr (8.13.6/8.13.6) with ESMTP id p88EXI1l003661 for ; Thu, 8 Sep 2011 16:33:18 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApABAFrRaE7RVdgpkGdsb2JhbABDmHyOewgUAQEBAQkJDQcUBCKBRgEBAQEDEgIsASoDCwEDDAEFBQsNDSEiEgEFAQoSBhMSEIdXmy4KjhSFL4koAgMGhmcEjAiHK4l9gnI8gUeCJg X-IronPort-AV: E=Sophos;i="4.68,350,1312149600"; d="scan'208";a="118854993" Received: from mail-qw0-f41.google.com ([209.85.216.41]) by mail1-smtp-roc.national.inria.fr with ESMTP/TLS/RC4-SHA; 08 Sep 2011 16:33:12 +0200 Received: by qwa26 with SMTP id 26so633685qwa.0 for ; Thu, 08 Sep 2011 07:33:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=/uAAUsYcm8D7DyXK02yseDTwTW5Vm/cR6IX1k/L5Adk=; b=tE+g/VakGnRzn1J3j1CjV8hN1om7MHbSE1kUmVZEYQhmJRlmVREaCJUwdDQPGkAT0W 5OZwpJ6/MJbWxhOtQmp/1wVAUfOjumEUuVTsJKum+S8kaERp0SkVV6Q19SW0MWkdhjXe U+YytuDsJCKodAujCa/pMOmmQpxZvQxxXlXvI= MIME-Version: 1.0 Received: by 10.224.9.72 with SMTP id k8mr568262qak.290.1315492391897; Thu, 08 Sep 2011 07:33:11 -0700 (PDT) Sender: philippe.wang.lists@gmail.com Received: by 10.224.89.19 with HTTP; Thu, 8 Sep 2011 07:33:11 -0700 (PDT) In-Reply-To: References: Date: Thu, 8 Sep 2011 16:33:11 +0200 X-Google-Sender-Auth: -r5PCWafldb2BYJIWzBdvCR4Vag Message-ID: From: Philippe Wang To: Walter Cazzola Cc: OCaML Mailing List Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by walapai.inria.fr id p88EXI1l003661 Subject: Re: [Caml-list] separate compilation #stuff are generally for interactive top-level use. #use and #load definitely are. They can't be compiled. First, compile interface files: ocamlc -c a.mli then compile your ml : ocamlc -c a.ml because your ml uses (at least it seems to) information contained in your mli file. If your files depend on other files that are in other directories, you may need to use -I, like in ocamlc -c -I lib/stuff plop.ml if you have for instance a dependance on a module contained in lib/stuff. (Notice that modules on which you depend have to be compiled) And to use mli information, it has to be compiled (into a cmi file). Cheers, -- Philippe Wang mail@philippewang.info On Thu, Sep 8, 2011 at 4:26 PM, Walter Cazzola wrote: > Dear Experts, > I'm a sort of newbe so be patient with if I ask something too silly > (I've googled around but I didn't find anything really usefull). > > At the moment I'm investigating on how the OCaML module system and the > separate compilation works. > > Nothing original I took the priority queue example from the user manual > and split it into three files (attached): one with the structure (A.ml) > one with the signature (A.mli) and one with a silly main (main.ml). > > Following the instructions in the manual I have tried to compile each > file without linking but the only that compiles with success is the file > with the signature since it doesn't refer to any other file. > > When I compile the structure or the main I get this error: >  >ocamlc -c A.ml >  File "A.ml", line 17, characters 39-52: >  Error: Unbound module type CharPQueueAbs > > I have tried to put #use or #load in the A.ml and main.ml file but the > only result is to get a syntax error (e.g., with #use "A.mli" at the > beggining of A.ml) > >  >ocamlc -c A.ml >  File "A.ml", line 1, characters 0-1: >  Error: Syntax error > > What am I doing wrong? Any help is appreciate, thanks. > > Walter > > -- > -- > Caml-list mailing list.  Subscription management and archives: > https://sympa-roc.inria.fr/wws/info/caml-list > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs > >