From: Gerd Stolpmann <info@gerd-stolpmann.de>
To: Fergus Henderson <fjh@cs.mu.OZ.AU>
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] The DLL-hell of O'Caml
Date: Wed, 20 Mar 2002 13:53:19 +0100 [thread overview]
Message-ID: <3C98863F.6060208@gerd-stolpmann.de> (raw)
In-Reply-To: <20020320222038.A3148@hg.cs.mu.oz.au>
Fergus Henderson wrote:
> On 12-Mar-2002, Gerd Stolpmann <info@gerd-stolpmann.de> wrote:
>
>>On 2002.03.12 01:19 Jeff Henrikson wrote:
>>
>>>>In O'Caml replacing library X by a newer version usually means that
>>>>all libraries Y that depend on X must be recompiled. And there is no
>>>>guarantee that Y can be compiled at all. I do not see any chance to
>>>>change this, it is a consequence of strict typing.
>>>>
>>>I don't see this. I can believe that consequences of implementation
>>>choices which have been made prohibit this. For hypothetical example,
>>>inlining behavior which could not be disabled on public interfaces would
>>>be a problem. (I don't think this particular thing happens in ocaml.)
>>>But I certainly don't see "a consequence of strict typing."
>>>
>
> I agree. It is not true of other languages with static typing,
> e.g. Mercury or C++.
I don't know Mercury but C++. Actually, it does not ensure proper
typing between compilation units! The .o files do not contain types,
and it is up to the programmer to include the right prototypes.
> I think that rather than being a consequence of strict typing, it is a
> possible consequence of treating modules as more-or-less first class,
> if you use a representation of modules in which adding a new function
> does not preserve binary compatibility. Does O'Caml do that?
It is also a matter of typing because even toplevel modules can be
used to parameterize functors. So adding a new function may break
functor applications.
My point is not that it is impossible to flexibilize linking, but that
it is not simple to do so. I think typing should be strict even across
compilation units, and that the programming environment must check
it. Strict typing also means to ensure compatible memory layouts but
this is not the only meaning. For example, it must be still possible to
hide the representation of types.
> Adding new functions to a module ought not break binary backwards
> compatibility. If it does, then you lose many of the benefits of
> separate compilation.
I think you mean "independent compilation" here, i.e. the linker does
not check proper typing. It is simple to make errors that are hard to
find. You need expert knowledge to find out which changes are binary
compatible and which not. Better we don't have it.
Gerd
-------------------
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
next prev parent reply other threads:[~2002-03-20 12:53 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-03-11 4:28 Mark D. Anderson
2002-03-11 7:12 ` Mattias Waldau
2002-03-11 12:15 ` Gerd Stolpmann
2002-03-12 0:19 ` Jeff Henrikson
2002-03-12 22:00 ` Gerd Stolpmann
2002-03-20 11:20 ` Fergus Henderson
2002-03-20 11:43 ` Jacques Garrigue
2002-03-20 17:16 ` Fergus Henderson
2002-03-20 12:53 ` Gerd Stolpmann [this message]
2002-03-20 13:05 ` Johan Georg Granström
2002-03-20 13:40 ` Gerd Stolpmann
2002-03-20 19:46 ` Alain Frisch
2002-03-20 20:39 ` Xavier Leroy
2002-03-20 21:16 ` Markus Mottl
2002-03-21 9:07 ` Warp
2002-03-21 10:18 ` Christopher Quinn
2002-03-21 18:13 ` Xavier Leroy
2002-03-21 14:13 ` Jeff Henrikson
2002-03-21 14:13 ` [Caml-list] Type-safe DLL's with OO (was DLL-hell of O'Caml) Tim Freeman
2002-03-21 18:10 ` [Caml-list] The DLL-hell of O'Caml Xavier Leroy
2002-03-21 18:39 ` Sven
2002-03-21 19:22 ` james woodyatt
2002-03-21 19:43 ` Jeff Henrikson
2002-03-22 2:02 ` Brian Rogoff
2002-03-22 10:11 ` Warp
2002-03-21 18:50 ` Sven
-- strict thread matches above, loose matches on Subject: below --
2002-03-22 10:24 Dave Berry
2002-03-22 10:14 Dave Berry
2002-03-02 0:11 [Caml-list] troubleshooting problem related to garbage collection james woodyatt
2002-03-02 7:57 ` [Caml-list] The DLL-hell of O'Caml Mattias Waldau
2002-03-02 11:56 ` Markus Mottl
2002-03-02 21:40 ` Alexander V. Voinov
2002-03-02 14:46 ` Alain Frisch
2002-03-02 19:00 ` Chris Hecker
2002-03-02 19:42 ` Mattias Waldau
2002-03-02 22:41 ` Chris Hecker
2002-03-03 15:56 ` Vitaly Lugovsky
2002-03-04 9:57 ` Sven
2002-03-04 12:20 ` Jacques Garrigue
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=3C98863F.6060208@gerd-stolpmann.de \
--to=info@gerd-stolpmann.de \
--cc=caml-list@inria.fr \
--cc=fjh@cs.mu.OZ.AU \
/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