From: art yerkes <ayerkes@on-demand-tech.com>
To: caml-list@inria.fr
Subject: Re: [Caml-list] ocaml and large development projects
Date: Tue, 3 Jun 2003 09:31:51 -0500 [thread overview]
Message-ID: <20030603093151.159e5b1f.ayerkes@on-demand-tech.com> (raw)
In-Reply-To: <4.3.2.7.2.20030602171041.045da898@localhost>
On Mon, 02 Jun 2003 17:31:46 -0700
Chris Hecker <checker@d6.com> wrote:
>
> >In other words, don't worry about it. Ocaml is FAST. [...]
> >So you are expecting poor performance where it
> >simply doesn't exist.
>
> Uh, I must have missed it when you stopped by my office and came to this
> conclusion from looking at actual data from my project instead of just
> asserting it on a mailing list. :) Another example of
> You-Don't-Need-This-itis.
>
> Actually, ocamlopt compile speeds are already a problem for me, and my
> project is only about 20% done, LOC-wise. This is a small problem for me
> now that's going to be a huge problem soon enough unless I can get it
> fixed. Perhaps I have a lower process-overhead tolerance than you. I've
> already had to change my project around so only the files that need it use
> camlp4 (for streams) because it was too slow. I was counting on ocamlopt
> working "correctly" and allowing this decoupling as well, and again, I'm
> amazed it doesn't. I'm hoping that the ocaml team takes this seriously and
> fixes it soon (although no one from Inria has responded to this thread,
> which worries me).
>
> >[lots of ranting about software houses snipped]
>
> In spite of these generalizations about developers and organizations, it is
> not hard in C++ to decouple a large project. All C++ compilers support
> this "feature". It's done every day in large projects, and it mostly
> works. It appears impossible with ocamlopt given the current state of the
> compiler. There is a fundamental and important difference between "often
> people don't do it in C++ and John thinks they're stupid" and "it is
> physically impossible to do so in ocaml".
>
> Anyway, back to the problem: it seems like the hacked way to enable this
> is to checksum the cmi and compare the new one to the old one and if they
> match then don't update the new one during cmx compilation. That, coupled
> with a way to disable code inlining would allow you to control decoupling
> fairly well. Unless I'm missing something; I haven't looked into this yet
> (we had a baby :).
>
> Chris
Have you thought of trying to use Gerd Stolpmann's Dl package? Although that's
not exactly its purpose you'll be able to use it to implement each module in
a separate shared library. It's fairly trivial to adapt it to work on win32.
In order to generate the loader for each part, you use:
ocamldlgen original_implementation.ml implementing_library.dll > stub_impl.ml
And build your bits as dlls with something like:
ocamlopt -pack <*.cmx> -output-obj -o packed.obj
link /dll /out:implementing_library.dll packed.obj $(LIBS)
This would allow you to separate your project into as many separately compiled
subparts as you want without sacrificing inlining within the parts.
--
`No, you don't understand,' the Knight said, looking a little vexed.
`That's what the name is called. The name really is "The Aged Aged
Man."'
-- Lewis Carroll
-------------------
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:[~2003-06-03 14:29 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <ocaml@tagger.yapper.org>
2003-03-31 16:51 ` [Caml-list] How can I check for the use of polymorphic equality? Neel Krishnaswami
2003-03-31 17:33 ` brogoff
2003-04-03 19:44 ` Jason Hickey
2003-04-03 20:40 ` Pierre Weis
2003-04-03 20:53 ` Chris Hecker
2003-04-04 8:46 ` Pierre Weis
2003-04-04 19:05 ` Jason Hickey
2003-04-04 9:10 ` Andreas Rossberg
2003-05-14 11:43 ` [Caml-list] ocaml and large development projects Traudt, Mark
2003-05-14 15:52 ` Jason Hickey
2003-05-18 5:32 ` Chris Hecker
2003-05-18 5:44 ` David Brown
2003-05-18 6:10 ` Chris Hecker
2003-05-18 11:13 ` John Carr
2003-05-18 16:51 ` Ed L Cashin
2003-05-18 18:08 ` Lex Stein
2003-05-18 19:08 ` Ed L Cashin
2003-05-18 19:55 ` Lex Stein
2003-05-19 8:13 ` Markus Mottl
2003-05-19 8:33 ` Nicolas Cannasse
2003-06-02 21:59 ` John Max Skaller
2003-05-18 23:19 ` Chris Hecker
2003-05-18 14:38 ` David Brown
2003-05-18 16:00 ` Ville-Pertti Keinonen
2003-05-19 15:36 ` Brian Hurt
2003-05-19 19:31 ` Chris Hecker
2003-05-19 23:39 ` Seth Kurtzberg
2003-05-20 8:07 ` [Caml-list] ocaml as *.so (was: ...and large development projects) Wolfgang Müller
2003-05-20 8:42 ` [Caml-list] Reading a file Siegfried Gonzi
2003-05-20 10:21 ` Mattias Waldau
2003-05-20 10:48 ` Nicolas Cannasse
2003-05-20 10:55 ` Markus Mottl
2003-05-20 13:20 ` Michal Moskal
2003-05-20 12:21 ` Siegfried Gonzi
2003-05-21 6:11 ` Siegfried Gonzi
2003-05-21 6:48 ` Siegfried Gonzi
2003-05-21 6:53 ` Siegfried Gonzi
2003-05-21 9:16 ` Markus Mottl
2003-05-21 10:04 ` Eray Ozkural
2003-05-21 16:20 ` brogoff
2003-05-21 8:21 ` Michal Moskal
2003-05-21 7:24 ` [Caml-list] PsiLAB works fine under Linux SuSE 8 Siegfried Gonzi
2003-05-21 9:11 ` [Caml-list] Reading a file Markus Mottl
2003-05-22 6:27 ` Siegfried Gonzi
2003-05-22 10:26 ` Markus Mottl
2003-05-23 5:59 ` Siegfried Gonzi
2003-05-23 6:04 ` Siegfried Gonzi
2003-05-20 10:45 ` [Caml-list] ocaml as *.so (was: ...and large development projects) Nicolas Cannasse
2003-05-20 11:17 ` Wolfgang Müller
2003-05-20 11:31 ` Nicolas Cannasse
2003-05-20 11:40 ` Wolfgang Müller
2003-06-02 22:40 ` John Max Skaller
2003-06-03 13:26 ` [Caml-list] ocaml as *.so Remi Vanicat
2003-06-02 22:42 ` [Caml-list] ocaml and large development projects John Max Skaller
2003-06-02 21:24 ` John Max Skaller
2003-06-02 21:12 ` John Max Skaller
2003-06-03 0:31 ` Chris Hecker
2003-06-03 10:13 ` Michal Moskal
2003-06-03 18:12 ` Chris Hecker
2003-06-03 14:31 ` art yerkes [this message]
2003-06-03 21:55 ` Jason Hickey
2003-06-03 22:42 ` Chris Hecker
2003-06-06 23:46 ` John Max Skaller
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=20030603093151.159e5b1f.ayerkes@on-demand-tech.com \
--to=ayerkes@on-demand-tech.com \
--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