caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Ville-Pertti Keinonen <will@exomi.com>
To: Jon Harrop <jdh30@cam.ac.uk>
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] Large projects in OCaml
Date: Fri, 21 May 2004 15:49:02 +0300	[thread overview]
Message-ID: <3CCE10AB-AB25-11D8-8E42-000393863F70@exomi.com> (raw)
In-Reply-To: <200405211228.34673.jdh30@cam.ac.uk>


On May 21, 2004, at 2:28 PM, Jon Harrop wrote:

> But I want them to be able to constantly write new code and recompile 
> it
> (statically linking their .cmo files with mine), forever. If their 
> code and
> my lib depend upon the same object file and it changes, then this will 
> break

Your library version obviously needs to depend on a specific version of 
OCaml as well as specific versions of libraries used by your 
library...but for a commercial library, this should be the case, 
anyhow.  You shouldn't be supporting any versions of OCaml and 
libraries you depend on except the ones you have built and tested 
against.

This isn't specific to OCaml, either.  C is rare in that it has had 
stable and standardized enough ABIs that you can usually get away with 
using different versions of compilers and system libraries.  With other 
libraries, YMMV, but things that break due to version incompatibilities 
aren't rare.

But even with C++, things often aren't that easy.  The commercial 
binary C++ libraries I've used, whether shared or not, are supported 
for only a particular compiler version and particular versions of third 
party libraries.  Usually any third party libraries that are required 
are distributed along with the purchased binary library.

> and the only fix will be for them to get a new lib from me for the new
> version of their object file. If I am right, then I am afraid that 
> this will
> put people off...

But why would your library depend on *their* changing object file, 
unless its a third party library, in which case they should be using 
the same version you built against?

In any case, you really should consider distributing your library in 
source form to licensees.  Given a choice, I'd never purchase a 
binary-only library for any purpose (sadly, I often don't have a 
choice).

Almost all of the problems I've run into with purchased binary 
libraries could've been avoided if I had the source, and I've spent 
unreasonable amounts of time tracking down totally stupid problems 
(mostly due to undocumented assumptions).  I can't think of any binary 
(non-system) libraries that I haven't run into unnecessary problems 
with during the last decade...prior to that, I wasn't used to having 
source code, so I didn't associate problems with binary distributions.

-------------------
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-21 12:49 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-05-19 17:24 ramu ramamurthy
2004-05-19 21:33 ` Jon Harrop
2004-05-19 23:04   ` David J. Trombley
2004-05-20 16:31   ` Eric Stokes
2004-05-20 17:37     ` Jon Harrop
2004-05-20 20:30       ` Eric Stokes
2004-05-20 21:04         ` Jon Harrop
2004-05-20 21:41           ` Eric Stokes
2004-05-21 11:28             ` Jon Harrop
2004-05-21 12:49               ` Ville-Pertti Keinonen [this message]
2004-05-21 16:27                 ` Jon Harrop
2004-05-24  3:07               ` Jacques GARRIGUE
2004-05-24  5:20                 ` skaller
2004-05-24 12:14                   ` Jacques GARRIGUE
2004-05-24 13:54                     ` skaller
2004-05-24 14:20                       ` Xavier Leroy
2004-05-24 16:48                         ` Alex Baretta
2004-05-24 17:38                           ` brogoff
2004-05-25  5:25                           ` Alan Schmitt
2004-05-24 19:24                         ` skaller
2004-05-24 19:52                           ` Brandon J. Van Every
2004-05-24 14:20                       ` Daniel Bünzli
2004-05-24 19:34                         ` skaller
2004-05-24 16:49                       ` james woodyatt
2004-05-19 21:38 ` Richard Jones
2004-05-20  8:46   ` skaller
2004-05-20 11:56     ` [Caml-list] A problem with nan sejourne kevin
2004-05-20 20:42       ` Jon Harrop
2004-05-20 22:24         ` David J. Trombley
2004-05-20 22:45         ` Damien Doligez
2004-05-20 13:10     ` [Caml-list] Large projects in OCaml Jon Harrop
2004-05-20 16:23       ` skaller
2004-05-20  6:35 ` David Monniaux
2004-05-20  7:17   ` Dustin Sallings
2004-05-25  7:26 Mattias Waldau
2004-05-25 19:07 ` Richard Jones
2004-05-25 19:54   ` Evan Martin
2004-05-26  6:57   ` skaller
2004-05-26  8:09     ` Richard Jones

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=3CCE10AB-AB25-11D8-8E42-000393863F70@exomi.com \
    --to=will@exomi.com \
    --cc=caml-list@inria.fr \
    --cc=jdh30@cam.ac.uk \
    /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).