From: Sylvain Le Gall <sylvain@le-gall.net>
To: caml-list@inria.fr
Subject: Re: Cherry-picking modules (was Re: [ANN] OCaml Reins 0.1 - Persistent Data Structure Library)
Date: Wed, 26 Sep 2007 10:26:11 +0000 (UTC) [thread overview]
Message-ID: <slrnffkcu3.3nv.sylvain@gallu.homelinux.org> (raw)
In-Reply-To: <B2FE2D0B-623F-4F26-B587-4CD55E5F611D@epfl.ch>
On 26-09-2007, Daniel Bünzli <daniel.buenzli@epfl.ch> wrote:
>
> Le 26 sept. 07 à 01:33, Sylvain Le Gall a écrit :
>
>> Anyway, embeding any external code into your project is a nightmare
>> for
>> security/maintenance in the long term... I would avoid this
>> solution if
>> i want things that doesn't have problem.
>
> As I explained I don't think so. In the best case you delegate the
> nightmare to the user. Can you explain exactly where the nightmare is
> with embedding ? If the distributed modules you integrate are
> labelled with a version, I don't see it. The work needed for
> maintenance in the long term is exactly the same, except only the
> developer has to care. As for security updates in ocaml, you cannot
> anyway rely on dynamic linking. Which I see as a good thing, for
> applications dynamic linking creates more problems than it solves and
> should be avoided most of the time (except of course for system
> libraries).
>
OK, let me make myself clear, about the fact that embedding things is
the worst case. Let consider library libA and program progB, progB
requires libA:
* libA is embedded inside progB:
** libA do a minor bug correction -> you need to re-release progB even if
nothing has changed inside it
** you make a bug correction in libA, as many developers you don't have
time to submit bug upstream -> libA upstream and libA embedded begin to
be different
* libA is not embedded inside progB:
** libA do a minor bug correction -> progB just need to be recompiled
(no release), easy to do automatically with a dependency tracking
** you make a bug correction in libA -> you have no choice than to
report it to upstream libA, because your bug correction will disappear
in next libA release
Unfortunately i have seen projects (like mldonkey) which has embedded a
lot of libraries. The result of this is that you only creates branches,
with no real feedback to upstream author. This is a shame, it
duplicates works of bug correction for libA upstream and progB.
It is funny, because when you see other big languages -- which are
working very well -- like Perl, they all try to avoid embedding libraries!
The only real needs is to have something that automatically
download/build/install dependency!
AND WE HAVE IT: godi!
Or if you want things more distro based: debian...
Off course, as long as you will think that you must embed everything, you
won't need to learn godi (which is very simple) and you won't evolve on
this point.
I really do invite you to try godi/ocamlfind?
These tools are really great and are a solution for the kind of problems
you describe..
Regards,
Sylvain Le Gall
next prev parent reply other threads:[~2007-09-26 10:37 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-09-25 18:53 [ANN] OCaml Reins 0.1 - Persistent Data Structure Library Mike Furr
2007-09-25 19:14 ` [Caml-list] " Daniel Bünzli
2007-09-25 19:30 ` Mike Furr
2007-09-25 22:16 ` Cherry-picking modules (was Re: [Caml-list] [ANN] OCaml Reins 0.1 - Persistent Data Structure Library) Daniel Bünzli
2007-09-25 23:33 ` Cherry-picking modules (was " Sylvain Le Gall
2007-09-26 6:41 ` [Caml-list] " skaller
2007-09-26 7:22 ` Daniel Bünzli
2007-09-26 8:19 ` skaller
2007-09-26 8:30 ` Daniel Bünzli
2007-09-26 8:58 ` skaller
2007-09-26 9:49 ` Daniel Bünzli
2007-09-26 10:26 ` Sylvain Le Gall [this message]
2007-09-26 11:45 ` Jim Miller
2007-09-26 12:37 ` Sylvain Le Gall
2007-09-27 10:11 ` [Caml-list] " Richard Jones
2007-09-26 12:22 ` Daniel Bünzli
2007-09-26 12:58 ` skaller
2007-09-26 16:47 ` Sylvain Le Gall
2007-09-26 22:38 ` [Caml-list] " Vincent Aravantinos
2007-09-26 22:41 ` Vincent Aravantinos
2007-09-26 6:19 ` Cherry-picking modules (was Re: [Caml-list] " skaller
2007-09-26 15:08 ` Michael Furr
2007-09-26 17:12 ` skaller
2007-09-26 17:53 ` Mike Furr
2007-09-26 19:16 ` skaller
2007-10-05 14:42 ` Adrien
2007-10-05 14:58 ` Cherry-picking modules (was Re: [Caml-list] [ANN] OCaml Reins 0.1- " Christoph Bauer
2007-10-05 15:21 ` Adrien
2007-10-05 19:45 ` Cherry-picking modules (was Re: [Caml-list] [ANN] OCaml Reins0.1- " David Allsopp
2007-10-05 3:48 ` Cherry-picking modules (was Re: [Caml-list] [ANN] OCaml Reins 0.1 - " Nathaniel Gray
2007-09-26 7:03 ` Maxence Guesdon
2007-09-26 7:44 ` skaller
2007-09-26 8:53 ` Maxence Guesdon
2007-09-26 10:05 ` Daniel Bünzli
2007-09-26 8:17 ` Daniel Bünzli
2007-09-26 15:32 ` Michael Furr
2007-09-26 15:50 ` Vincent Aravantinos
2007-09-26 16:42 ` Cherry-picking modules (was " Sylvain Le Gall
2007-09-26 17:38 ` [Caml-list] " skaller
2007-09-26 17:57 ` Vincent Aravantinos
2007-09-26 17:22 ` Cherry-picking modules (was Re: [Caml-list] " skaller
2007-09-26 18:17 ` Daniel Bünzli
2007-09-26 18:45 ` Mike Furr
2007-09-26 19:21 ` skaller
2007-09-26 5:51 ` ExtLib, etc. " David Teller
2007-09-26 20:37 ` [Caml-list] [ANN] OCaml Reins 0.1 - Persistent Data Structure Library Mike Furr
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=slrnffkcu3.3nv.sylvain@gallu.homelinux.org \
--to=sylvain@le-gall.net \
--cc=caml-list@inria.fr \
/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