[PPL-devel] Bugs in OCaml interface
Enea Zaffanella
zaffanella at cs.unipr.it
Thu Apr 2 19:04:06 CEST 2009
Kenneth MacKenzie wrote:
> Enea Zaffanella writes:
> >
> > The snapshot with the corrections is now ready:
> > ftp://ftp.cs.unipr.it/pub/ppl/snapshots/
>
> Hi Enea,
>
> The problems with the OCaml interface have now gone away (thanks!),
> and I can confirm that my problem with the
> ppl_Polyhedron_BHRZ03_widening_assign function has nothing to do with
> the OCaml interface. I extracted the polyhedra that were causing
> problems (they have 60 and 81 constraints) and fed them to the C++
> version of the widening function. It's now been running for 14 hours
> without terminating. However, your suggestion of using a timer to
> escape and use the H79 widening instead seems to work well.
This is good news.
> I did have a couple of problems with the snapshot. I changed to the
> ppl/doc directory and tried
>
> [5~ make ppl-user-configured-ocaml-interface-0.10.1pre10-html
>
> but it failed because it couldn't find something it needed from gmp.
> This is due to the fact that I had to install gmp in a subdirectory of
> my home directory, but the makefile was looking in one of the
> standard directories:
>
> OCAMLDOC_HTML_OPTIONS = \
> -I +gmp -I $(top_builddir)/interfaces/OCaml -html
>
> OCAMLDOC_LATEX_OPTIONS = \
> -I +gmp -I $(top_builddir)/interfaces/OCaml \
> -latex -noheader -notrailer -notoc
>
> I changed the +gmp to the location of my version of gmp and it worked
> properly. I had other problems for the same reason a while ago and
> someone added --with-libgmp and --with-libgmpxx-prefix options to the
> top-level configure script, so presumably these should also be used
> here.
You are right: we should have used -I @mlgmp_dir@
This is already corrected in the git master branch.
The commit info is available at:
http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=3b959163da9e982568db53698e377a72c1f95da7
> I also ran "make check", and it failed after 4 hours with
>
> make check-TESTS
> make[6]: Entering directory
> `/disk/scratch/ppl-0.10.1pre10/interfaces/OCaml/tests'
> ./test1: error while loading shared libraries: libgmpxx.so.4: cannot
> open shared object file: No such file or directory
> FAIL: test1
> ./ppl_ocaml_generated_test: error while loading shared libraries:
> libgmpxx.so.4: cannot open shared object file: No such file or
> directory
> FAIL: ppl_ocaml_generated_test
> ./test1_opt: error while loading shared libraries: libgmpxx.so.4:
> cannot open shared object file: No such file or directory
> FAIL: test1_opt
> ./ppl_ocaml_generated_test_opt: error while loading shared libraries:
> libgmpxx.so.4: cannot open shared object file: No such file or
> directory
> FAIL: ppl_ocaml_generated_test_opt
> ======================================
> 4 of 4 tests failed
> Please report to ppl-devel at cs.unipr.it
> ======================================
> make[6]: *** [check-TESTS] Error 1
> make[6]: Leaving directory
> `/disk/scratch/ppl-0.10.1pre10/interfaces/OCaml/tests'
> make[5]: *** [check-am] Error 2
> make[5]: Leaving directory
> `/disk/scratch/ppl-0.10.1pre10/interfaces/OCaml/tests'
> make[4]: *** [check-recursive] Error 1
> make[4]: Leaving directory
> `/disk/scratch/ppl-0.10.1pre10/interfaces/OCaml'
> make[3]: *** [check] Error 2
> make[3]: Leaving directory
> `/disk/scratch/ppl-0.10.1pre10/interfaces/OCaml'
> make[2]: *** [check-recursive] Error 1
> make[2]: Leaving directory `/disk/scratch/ppl-0.10.1pre10/interfaces'
> make[1]: *** [check] Error 2
> make[1]: Leaving directory `/disk/scratch/ppl-0.10.1pre10/interfaces'
> make: *** [check-recursive] Error 1
>
> Again, it appears that it's not looking in the right place.
This looks strange to me: the message seems to suggest that the system
finds the OCaml mlgmp wrapper, but it does not find the C++ wrapper
libgmpxx.
I am definitely not an expert of OCaml related builds, but I think that
I have read somewhere that OCaml native library wrappers were encoding
in their inside the right link options, so that one should not need to
issue them each time.
I will need to investigate further, but for the immediate I can imagine
two possible explanations :
a) Maybe you did something wrong when compiling the mlgmp wrapper.
As said in file interfaces/Ocaml/README.ocaml:
===========
In order to install MLGMP you should make sure that GMP_INCLUDES and
GMP_LIBDIR are correctly set (these variables are defined at the
beginning of Makefile in the MLGMP's root directory).
===========
Could it be the case that you did something wrong here?
b) What is the output of the command
echo $LD_LIBRARY_PATH
on your machine? Does it include the path to your installation place,
that is /afs/inf.ed.ac.uk/user/k/kwxm/libraries/lib ?
Let us know if either a) or b) solves the problem.
Cheers,
Enea.
> Here's my config.log if you need it:
>
>
>
>
> ------------------------------------------------------------------------
>
>
> Best wishes,
>
> Kenneth
More information about the PPL-devel
mailing list