From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id KAA29903; Fri, 25 Jul 2003 10:56:34 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f 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 KAA04312 for ; Fri, 25 Jul 2003 10:56:33 +0200 (MET DST) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by concorde.inria.fr (8.11.1/8.11.1) with ESMTP id h6P8uWf08973; Fri, 25 Jul 2003 10:56:32 +0200 (MET DST) Received: (from xleroy@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id KAA31994; Fri, 25 Jul 2003 10:56:32 +0200 (MET DST) Date: Fri, 25 Jul 2003 10:56:32 +0200 From: Xavier Leroy To: Basile STARYNKEVITCH Cc: caml-list@inria.fr Subject: Re: [Caml-list] is ocaml 3.07 object-file compatible with 3.06? Message-ID: <20030725105632.A31893@pauillac.inria.fr> References: <16159.50395.271827.595003@hector.lesours> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 1.0i In-Reply-To: <16159.50395.271827.595003@hector.lesours>; from basile@starynkevitch.net on Thu, Jul 24, 2003 at 01:36:59PM +0200 X-Loop: caml-list@inria.fr X-Spam: no; 0.00; caml-list:01 3.07:01 3.06:01 findlib:01 pervasives:01 libs:01 inference:01 typecore:01 printf-like:01 fprintf:01 sprintf:01 roles:01 kprintf:01 gettext:01 inconsistent:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk > Is the beta (or the final, when available) release of 3.07 compatible > at the the object level with 3.06? In other words, if my application > uses a lot of (findlib managed) third parties' libraries, do I need to > recompile all of them, or can I use ocaml 3.07 to link with libraries > compiled with ocaml 3.06? You need to recompile all third-party libraries. The format of Caml compiled files didn't change, but the standard library interfaces (Pervasives, etc) against which these libs were compiled changed between 3.06 and 3.07beta. And you might have to recompile again when 3.07 is out. If you try to use these libraries without recompiling them, you'll get plenty of "Files xxx and yyy make inconsistent assumptions about module Z". That should explain why we really need some kind of library packaging tools: so that such recompilations can be performed automatically by the packaging tool. > BTW, I did search (the 'format4' word) in the beta documentation of > 3.07 and did not found a clear explanation of the long awaited > ('a,'b,'c,'d) Pervasives.format4 type - I would like a *detailed* > explanation of what 'a 'b 'c 'd type variables stand for (even if I do > guess partly what they are for). A *detailed* explanation would be one page of inference rules, paraphrasing the code in Typecore.type_format. I'm not sure this will really help... However, it's easy to explain the difference between the old type ('a,'b,'c) format and the new type ('a,'b,'c1,'c2) format4: in type format, 'c is both the type of the final result of the printf-like function (e.g. unit for fprintf and string for sprintf) *and* the result type for the function parameters corresponding to %a and %t formats. In type format4, these two roles are divided between two independent variables 'c1 and 'c2. There are cases (as with kprintf) where different types are required for these two roles. > Are there any hints for using format4 strings with localisation (ie a > wrapper to gettext)? The same hints that I gave in an earlier post in terms of the "format" type apply equally well to the "format4" type. - Xavier Leroy ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners