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 NAA22518; Tue, 25 Nov 2003 13:55:49 +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 NAA22293 for ; Tue, 25 Nov 2003 13:55:48 +0100 (MET) Received: from babasse.residence.ens-lyon.fr (babasse.residence.ens-lyon.fr [140.77.129.19]) by nez-perce.inria.fr (8.11.1/8.11.1) with ESMTP id hAPCtl117754 for ; Tue, 25 Nov 2003 13:55:47 +0100 (MET) Received: from localhost ([127.0.0.1] helo=babasse) by babasse.residence.ens-lyon.fr with smtp (Exim 3.36 #1 (Debian)) id 1AOcjK-0000z2-00 for ; Tue, 25 Nov 2003 13:55:46 +0100 Date: Tue, 25 Nov 2003 13:55:37 +0100 From: Samuel Mimram To: "Caml Users Mailing List" Subject: Re: [Caml-list] Ocaml and Samba function name collisions Message-Id: <20031125135537.7e947b4f.samuel.mimram@ens-lyon.fr> In-Reply-To: <008b01c3b329$0f871d50$0274a8c0@PWARP> References: <3FC174F5.13617AC8@orcaware.com> <20031124095952.GE25688@redhat.com> <3FC2A2DC.F73593F3@orcaware.com> <20031125073825.GA781@fistandantilus.takhisis.org> <008b01c3b329$0f871d50$0274a8c0@PWARP> X-Mailer: Sylpheed version 0.9.6claws (GTK+ 1.2.10; i386-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Loop: caml-list@inria.fr X-Spam: no; 0.00; samuel:01 samuel:01 ens-lyon:01 caml-list:01 cannasse:01 warplayer:01 prepend:01 ocaml's:01 graphviz:01 struct:01 graphviz:01 generic:01 collision:01 cannasse:01 bug:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk We've had recently exactly the same problem with libsmbclient (we even posted it here but no one seemed to have noticed it). The only solution we found yet was to modify the source code of libsmbclient to rename the colliding names (string_set and sys_open). But this is clearly not a good solution. The #define you suggested does not seem to work and I think this is beacause they are not exported in the header files but are in the the .so and therefore visible in the global C namespace. And I'd prefer not to have to use C++ (I think I should be able to do it in C), so I did not try the namspace trick. That's why, unless someone has a canonical solution to the problem, I think functions with such common names should have their names prefixed. Samuel Mimram. On Tue, 25 Nov 2003 16:52:22 +0900 "Nicolas Cannasse" wrote: > > > The synopsis of this message is to ask that the Ocaml source > > > code prepend a Ocaml specific string, "ml_", "caml_" or "ocaml_" > > > to all function names in Ocaml's source code to avoid name > > > collisions with other packages. My case is made below :) > > > > I will definitely sign this petition. I had a similar problem while > > trying to write an ocaml binding to the graphviz library. Both the > > libraries defined, IIRC, a color struct used in graphviz for node colors > > and in ocaml by the GC :-( > > This is not a primitive name problem, but a data structure one (when > including file). > It can be easily resolved by using a #define color caml_color (or the > working equivalent) before including the caml headers. > Other solution is to put the caml headers into a C++ namespace. > BTW I'm not signing this petition : having everything prefixed with caml_ is > way to heavy. But for theses string_get string_set primitives that's true > the naming is too much generic and proper to name collision. Only theses > kinds should be renamed. > > Nicolas Cannasse > > ------------------- > 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 -- Samuel Mimram samuel.mimram@ens-lyon.fr ------------------- 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