caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Xavier Leroy <xavier.leroy@inria.fr>
To: Pixel <pixel@mandrakesoft.com>
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] -thread and ocamlc vs ocamlc.opt
Date: Wed, 16 Jan 2002 17:03:35 +0100	[thread overview]
Message-ID: <20020116170335.B13963@pauillac.inria.fr> (raw)
In-Reply-To: <lyvge6vslc.fsf@leia.mandrakesoft.com>; from pixel@mandrakesoft.com on Sun, Jan 13, 2002 at 10:39:11PM +0100

> % ocamlc -thread threads.cma
> % ocamlc.opt -thread threads.cma
> Error on dynamically loaded library: /usr/lib/ocaml/dllthreads.so: undefined symbol: extern_sp

This is a known bug in 3.04.  The switch to dynamic loading of C
libraries was bound to generate a few rough edges; this is the only
one known so far.

> % ocamlopt -thread threads.cmxa                           
> Cannot find file threads.cmxa

This is normal: you can't use threads in native programs, unless OCaml
was set up to use POSIX threads (configure --with-pthread).

> Questions:
> - in which case are ocamlc and ocamlc.opt not equivalent?

When there is a bug in one and not in the other :-)

> - in which case are xxx and xxx.opt not equivalent? 

Can't answer for general xxx.

> At least, it seems camlp4o.opt is pretty useless (one gets "native-code
> program cannot do a dynamic load")
> 
> I've been trying to reduce the size of the ocaml rpm which is getting quite
> huge (27MB), and doing
>   for i in /usr/bin/*.opt ; do
>     ln -s `basename $i` `echo $i | sed "s/.opt$//"`
>   done
> helps!

Frankly, I would rather remove the .opt compilers from the RPM, rather
than remove the non-.opt compilers.  

Concerning the RPM size, several things should be noted (with tongue
in cheek):

- If you had one package with gcc, gdb, libc and assorted goodies, it
would be even larger
- Mandrake contains even larger packages of even more dubious utility
than OCaml
- It is certainly possible to split it into different packages, if you
think not all users will need everything
- Mandrake could always switch to DVDs as their distribution format :-)

> - should threads.cmxa be included somehow/somewhere? The doc says
>     ocamlopt -thread other options threads.cmxa other files
>   is that wrong?

It also says you have to configure with POSIX threads for this to work.
The reason this is not the default configuration is that you need to
trust your POSIX thread implementation and have a good understanding
of its limitations (slower thread creation, fewer max threads allowed).
My experience as the initial developer of LinuxThreads suggest that
these conditions are not often met...

- Xavier Leroy

-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


  reply	other threads:[~2002-01-16 16:03 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-01-13 21:39 Pixel
2002-01-16 16:03 ` Xavier Leroy [this message]
2002-01-16 16:29   ` Sven
2002-01-16 16:38     ` Patrick M Doane
2002-01-16 16:43     ` Xavier Leroy
2002-01-16 16:46       ` Sven
2002-01-16 16:53   ` Pixel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20020116170335.B13963@pauillac.inria.fr \
    --to=xavier.leroy@inria.fr \
    --cc=caml-list@inria.fr \
    --cc=pixel@mandrakesoft.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).