caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: skaller <skaller@users.sourceforge.net>
To: Eric Stokes <eric.stokes@csun.edu>
Cc: caml-list <caml-list@inria.fr>
Subject: Re: [Caml-list] Ocaml shared libraries
Date: 17 May 2004 17:46:58 +1000	[thread overview]
Message-ID: <1084780017.19838.140.camel@pelican.wigram> (raw)
In-Reply-To: <B861BF3A-A7C8-11D8-B8C2-000A95A1E69A@csun.edu>

On Mon, 2004-05-17 at 16:09, Eric Stokes wrote:
> Hello All,
> 	As the director of a shop who is using Ocaml to do real work (yes I 
> know, research is more important :P),
> I would really like to be able to build a shared library out of code 
> that I have written in Ocaml,
> and link other Ocaml programs to it. 

You and me both. The Ocaml team is aware of this desire.
At least one obstacle appears to be that the x86 backend
does not generate relocatable code. I'm curious if the
'C' backend could be used for this purpose though??

> There are practical reasons for 
> wanting to do this, I write and maintain
> some rather large systems written in Ocaml. Currently, whenever I 
> update a library (not changing its interface),
> I need to recompile and reinstall the entire system. These problems I 
> can live with for now.

I cannot. My system has a fundamental requirement for self-extension
and high performance. Extensibility is possible with bytecode
but not native code.

> 	But... I also have "delusions" (or so I'm told). IMHO, Ocaml is fast 
> enough, and has enough good libraries
> in existence to create a climate where Ocaml software will slowly start 
> replacing software written in C.

	Yeah, you're deluded if you think performance and
quality have much to do with this .. just think about Java ..

>  I think that Ocaml is a very good 
> language (understatement) for building
> large reliable systems, and I would hate to see its growth be hampered 
> artificially by its lack of shared
> libraries.

	See Felix. I started off *mandating* the target
as a shared library. Static linkage was only added recently.
To a large extent this whole project is inspired by the inability
of Ocaml to build shared libraries and interface easily to C.

-- 
John Skaller, mailto:skaller@users.sf.net
voice: 061-2-9660-0850, 
snail: PO BOX 401 Glebe NSW 2037 Australia
Checkout the Felix programming language http://felix.sf.net



-------------------
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


  reply	other threads:[~2004-05-17  7:47 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-05-17  6:09 Eric Stokes
2004-05-17  7:46 ` skaller [this message]
2004-05-17  8:22 ` Xavier Leroy
2004-05-17 11:12   ` Michal Moskal
2004-05-17 13:45   ` John Goerzen
2004-05-17 14:27   ` Eric Stokes
     [not found]     ` <20040517.165146.60944531.andrieu@ijm.jussieu.fr>
2004-05-17 15:22       ` Eric Stokes

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=1084780017.19838.140.camel@pelican.wigram \
    --to=skaller@users.sourceforge.net \
    --cc=caml-list@inria.fr \
    --cc=eric.stokes@csun.edu \
    /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).