caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Vitaly Lugovsky <vsl@ontil.ihep.su>
To: Xavier Leroy <Xavier.Leroy@inria.fr>
Cc: Caml list <caml-list@inria.fr>, <web-caml@quatramaran.ens.fr>
Subject: Re: [web-caml] Re: [Caml-list] Web Development with OCaml
Date: Fri, 13 Jul 2001 21:08:23 +0400 (MSD)	[thread overview]
Message-ID: <Pine.LNX.4.30.0107132054320.23253-100000@ontil.ihep.su> (raw)
In-Reply-To: <20010713160428.A9419@pauillac.inria.fr>

On Fri, 13 Jul 2001, Xavier Leroy wrote:

> >  As I already mentioned here, we need a possibility to load a modules in
> > runtime. Bytecode is fast, but not enough for a killer web architecture.
> > So, we need a JIT, or, which will be much better, an object format
> > including intermediate lambda-trees to compile it and link at runtime.
> > Even a PIC code for native will not be enough, 'cause of a great overhead.
>
> I fail to see the logic in this argument.
>
> First, position-independent native code is indeed a bit slower than
> statically-linked code on some platforms,

 Is there any benchmarks for Caml? I tryed to modify an i386 compiler
backend to produce a PIC, but I failed. For Alpha we don't need a PIC,
so it will work as fast as statically linked native (but without
inlining...)

> but surely JIT-produced code
> is much worse.  If you don't believe me, compare performance between
> gcc -fpic -O and any Java implementation :-)

 JVM is not the best architecture for a JIT compilation. When I'm talking
about JIT for Caml, I really mean a late compilation and linking, using
the same intermediate formats as in a current native compiler. You only
have to serialize it into object file, and include some parts of compiler
into runtime. I understood, that OCaml bytecode is not well suited for
JVM-like JIT. Even much more worse then JVM itself.

> In other terms: those who can, compile ahead of time; those who can't,
> compile just in time.  A prime example of those who can't is Java:
> they screwed the definition of their language so well that it makes
> traditional compilation impossible; hence their propaganda about JITs.
> We (Caml) can...

 Btw., Java permits a traditional compilation: take a look at GCJ, it
produces a very nice code, except the stupid GC...

> Second, you (and others) seem to take for granted that a "servlet
> container" must load servlets dynamically into its own memory image.

 No. I only don't want to recompile the whole server when I add some new
functions. I don't even think about dynamic RELOADING of objects. It's a
big problem even for a Java (just restarted again this stupid Tomcat...).

> That's the Java way, but again that's not the only way.  Using
> separate processes for the HTTP server/servlet container and for the
> servlets (but not starting a new servlet process on each request like
> CGI does) might very well work better: I'll bet the performance hit
> would be insignificant, and you get a clean, well-specified
> communication protocol between server and servlets.

 But what if we have only one big servlet, which operates with a lot of
different templates/"... server pages", and using a lot of external
libraries?

> That's just one idea, but my general point is that the Java (or .NET)
> approach is not necessarily the right approach.

 Sure, there could be some other ways. But this one seems to me as the
most easy and historically proven. If we want to beat the Java, we have to
show a very close, but better alternative to those java programmers who
was bored with all that disgusting JSPs, Servlets, Oracle Business Objects
and so on. I'm the one of them - I'm using Java, I hate Java, but I can't
prove to my collegues that even Kawa-based solutions will be much
better...


-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


  reply	other threads:[~2001-07-13 17:18 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-07-10  0:01 Jimmie Houchin
2001-07-10  7:10 ` Jean-Christophe Filliatre
2001-07-10  7:15 ` Tom Hirschowitz
2001-07-10  8:19   ` David Mentre
2001-07-10  9:38   ` Alain Frisch
2001-07-11  5:49     ` Jimmie Houchin
2001-07-11  6:03       ` Alexander V. Voinov
2001-07-11 14:47         ` Jimmie Houchin
2001-07-12  1:58           ` John Max Skaller
2001-07-11  6:19       ` Alain Frisch
2001-07-11  9:09         ` Samuel Heriard Dubreuil
2001-07-11 14:11           ` Jimmie Houchin
2001-07-11 15:35       ` Francois Rouaix
2001-07-11 20:44         ` Gerd Stolpmann
2001-07-12  2:32         ` Jimmie Houchin
2001-07-13  5:37       ` William Chesters
2001-07-13 10:29         ` Alain Frisch
2001-07-13 11:16           ` Vitaly Lugovsky
2001-07-13 14:04             ` Xavier Leroy
2001-07-13 17:08               ` Vitaly Lugovsky [this message]
2001-07-15 18:03               ` Ari Heitner
2001-07-15 20:19                 ` Gerd Stolpmann
2001-07-16  8:23                 ` wakita
2001-07-17 16:18                 ` John Max Skaller
2001-07-17 18:50                   ` Ari Heitner
2001-07-18 22:24                     ` John Max Skaller
2001-07-13 16:12           ` Lyn A Headley
2001-07-13 17:50             ` William Chesters
2001-07-13 16:51           ` Miles Egan
2001-07-13 18:12           ` Jimmie Houchin

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=Pine.LNX.4.30.0107132054320.23253-100000@ontil.ihep.su \
    --to=vsl@ontil.ihep.su \
    --cc=Xavier.Leroy@inria.fr \
    --cc=caml-list@inria.fr \
    --cc=web-caml@quatramaran.ens.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;
as well as URLs for NNTP newsgroup(s).