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 JAA09283; Sat, 1 Nov 2003 09:22:20 +0100 (MET) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id JAA09267 for ; Sat, 1 Nov 2003 09:22:19 +0100 (MET) Received: from sockmel.bononia.it (sockmel.bononia.it [193.201.40.5]) by nez-perce.inria.fr (8.11.1/8.11.1) with ESMTP id hA18MI100491 for ; Sat, 1 Nov 2003 09:22:18 +0100 (MET) Received: from fistandantilus.takhisis.org (sockmel.bononia.it [193.201.40.5]) by sockmel.bononia.it (Postfix) with ESMTP id 877C556CDF for ; Sat, 1 Nov 2003 09:22:17 +0100 (CET) Received: by fistandantilus.takhisis.org (Postfix, from userid 3148) id F08E527411D; Sat, 1 Nov 2003 09:22:16 +0100 (CET) Date: Sat, 1 Nov 2003 09:22:16 +0100 From: Stefano Zacchiroli To: caml-list@inria.fr Subject: Re: [Caml-list] undocumented external ... = "%identity" Message-ID: <20031101082216.GB26261@fistandantilus.takhisis.org> Mail-Followup-To: caml-list@inria.fr References: <20031029104248.GA6566@fistandantilus.takhisis.org> <20031029203935I.garrigue@kurims.kyoto-u.ac.jp> <20031030195548.GD19967@fistandantilus.takhisis.org> <20031031074747.GA29233@force.stwing.upenn.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20031031074747.GA29233@force.stwing.upenn.edu> User-Agent: Mutt/1.5.4i X-Loop: caml-list@inria.fr X-Spam: no; 0.00; bononia:01 caml-list:01 undocumented:01 lovas:01 module's:01 runtime:01 runtime:01 undocumented:01 lablgtk:01 bononia:01 compiler:01 compiler:01 ocaml:01 ocaml:01 underlying:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk On Fri, Oct 31, 2003 at 02:47:48AM -0500, William Lovas wrote: > Obj.magic's "behavior" *is* subject to change, since it depends upon > the underlying representation of values. The Obj module's > documentation is, in a very real sense, the entire implementation of > the O'Caml compiler and runtime. The fact that Obj.magic _implementation_ depends on the entire implementation of the OCaml compiler and runtime, doesn't imply that its _interface_ does as well. If I'm using Obj.magic I'm supposed to know what I'm doing (the examples reported in the post you mentioned are significative here) and that I'm sure that the type magic I'm doing are correct. In such a case the correctness of those magics will change only when the assumption on which their correction rely changes, for example a change in the type system. Such major changes are usually backward compatibile, if not I suppose the Obj.magic forward porting problem will be the minor problem programmer will have with a new ocaml release ... If I look at the post you mentioned, I see that it's from January 1999, and Obj.magic usage seems to be exactly the same as today. > Such "okay" uses are sufficiently bizarre, though, that it makes sense to > leave the Obj module undocumented -- anyone who needs it will already > understand how it works. Poor point, I still don't think such a feature should be mentioned just on this mailing list and in the lablgtk code. Why not adding it to the documentation with a huge disclaimeir? Cheers. -- Stefano Zacchiroli -- Master in Computer Science @ Uni. Bologna, Italy zack@{cs.unibo.it,debian.org,bononia.it} - http://www.bononia.it/zack/ " I know you believe you understood what you think I said, but I am not sure you realize that what you heard is not what I meant! " -- G.Romney ------------------- 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