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 IAA27127; Sat, 14 Dec 2002 08:00:39 +0100 (MET) 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 IAA27123 for ; Sat, 14 Dec 2002 08:00:38 +0100 (MET) Received: from c007.snv.cp.net (h014.c007.snv.cp.net [209.228.33.242]) by concorde.inria.fr (8.11.1/8.11.1) with SMTP id gBE70b921976 for ; Sat, 14 Dec 2002 08:00:37 +0100 (MET) Received: (cpmta 26020 invoked from network); 13 Dec 2002 23:00:35 -0800 Received: from 65.187.194.217 (HELO localhost) by smtp.directvinternet.com (209.228.33.242) with SMTP; 13 Dec 2002 23:00:35 -0800 X-Sent: 14 Dec 2002 07:00:35 GMT Date: Sat, 14 Dec 2002 02:00:29 -0500 Mime-Version: 1.0 (Apple Message framework v482) Content-Type: text/plain; charset=US-ASCII; format=flowed Subject: [Caml-list] darwin link suckage eg: pcre From: jehenrik To: caml-list@inria.fr Content-Transfer-Encoding: 7bit Message-Id: X-Mailer: Apple Mail (2.482) Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Can somebody who understands Darwin linking tell me why my ocaml pcre does not work like I think it should? I build pcre 3.9. Install. Fine. I build pcre-ocaml 4.28. It installs in /usr/local/lib/ocaml/contrib. Good enough. After the install, I have to manually ranlib libpcre_stubs.a because the directory has changed. Fine. The example programs, pcregrep et al, link fine against the install. Now I try to build a toplevel: > bash2.05 jehenrik@localhost ~/src/pcre-ocaml-4.28.3 % ocamlmktop -ccopt > -L/usr/local/lib/ocaml/contrib -o ocaml_pcre pcre.cma > bash2.05 jehenrik@localhost ~/src/pcre-ocaml-4.28.3 % ocaml_pcre > Objective Caml version 3.06 > > # open Pcre;; > Unbound module Pcre > # Pcre.regexp;; > Unbound value Pcre.regexp The toplevel executable does contain the C stubs: > bash2.05 jehenrik@localhost ~/src/pcre-ocaml-4.28.3 % nm ocaml_pcre > . > . > . > 00002438 T _pcre_isspace_wrapper OTOH, I can't seem to see them even if I load pcre.cmo: > # #load "lib/pcre.cmo";; > # Pcre;; > Unbound constructor Pcre > # Pcre.regexp;; > Unbound value Pcre.regexp > # regexp;; > Unbound value regexp I can see them if I ignore the .mli file and load all the symbols into the top namespace: > # #use "lib/pcre.ml";; > exception BadPattern of string * int > exception InternalError of string > . > . > . > # regexp "[a-z]";; > - : regexp = > # Of course this isn't what I want, it's just duct tape. Now I have a fix which I don't understand either. I change > ifndef OCAML_LIB_INSTALL > OCAML_LIB_INSTALL := $(OCAMLLIBPATH) > JH was $(OCAMLLIBPATH)/contrib in OcamlMakefile, reinstall, and everything works perfect: > bash2.05 jehenrik@localhost ~/src/pcre-ocaml-4.28.3 % ocamlmktop > pcre.cma -o ocaml_pcre > bash2.05 jehenrik@localhost ~/src/pcre-ocaml-4.28.3 % ocaml_pcre > Objective Caml version 3.06 > > # open Pcre;; > # So I have a workaround, but I would like to know what the problem is so that I don't repeat whatever error is here with my own code. Thanks. Jeff Henrikson ------------------- 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