caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Jon Harrop <jon@ffconsultancy.com>
To: caml-list@yquem.inria.fr
Subject: Re: [Caml-list] Scripting in ocaml
Date: Sat, 23 Dec 2006 18:50:04 +0000	[thread overview]
Message-ID: <200612231850.04578.jon@ffconsultancy.com> (raw)
In-Reply-To: <458AA143.3090303@hq.idt.net>

On Thursday 21 December 2006 14:59, Serge Aleynikov wrote:
> OCaml has static typing but doesn't provide an actual location of code
> in exceptions.  Is it because it was hard or intentional?

F# uses .NET exceptions. They do provide such information but they are so slow 
that you must painstakingly avoid any use of exceptions in performance 
critical code, boxing and unrolling manually if necessary. This is in stark 
contrast to OCaml's lightning fast exceptions that are used as the basis of 
optimisations.

> > I guess the arguments for static typing and scalability are
> > well known. So the reasoning part is clear: we infer larger
> > programs without dynamic typing are harder to get right.
>
> I agree with your statements applicable to imperative/OO dynamicly typed
> languages.  However if a dynamic language is functional, this makes it
> possible to provide run-time static analysis to identify type related
> bugs and unreachable code.  An example of this is the Dyalizer tool for
> Erlang.

What do you mean by "run-time static analysis"? Surely if something is 
analysed at run-time then it cannot be static by definition?

> In this case running such a tool after compilation reveals the same
> problems that a compile-level static checker would do, but allows for
> run-time code reloading, more safe term serialization/deserialization,
> and safer cross-language integration.  Needless to say, this benefits
> comes at price of efficiency, but there are many cases when these
> features out-weight a reasonable performance loss that can be regained
> by parallelizing computations.

Then it might be worthwhile for F#, which supports concurrency.

> > Sorry, I wasn't clear. I meant to refer to dynamic loading in Ocaml,
> > not in general. Exactly why that is I don't know. Perhaps the
> > interaction of the static typing and dynamic loading is not
> > easy because it is not well understood how to make it so,
> > in Ocaml, and perhaps in general (without losing type safety)
>
> I believe that introducing strict typing in the language might help in
> bridging static typing and dynamic loading.  Strict typing would allow
> to do run-time type verification and type-specific guard checks.
> Though, this would no longer be Ocaml as we know it today.  ;-)

You could add run-time type information to OCaml and check it at boundaries, 
like marshalling. However, you'd want to optimise it away whenever possible, 
if not for performance reasons then to conserve memory.

-- 
Dr Jon D Harrop, Flying Frog Consultancy Ltd.
Objective CAML for Scientists
http://www.ffconsultancy.com/products/ocaml_for_scientists


  parent reply	other threads:[~2006-12-23 18:52 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-12-21  3:41 Denis Bueno
2006-12-21  4:34 ` [Caml-list] " Erik de Castro Lopo
2006-12-21  7:22   ` skaller
2006-12-21  9:12     ` Till Varoquaux
2006-12-21  9:18     ` Chad Perrin
2006-12-21 10:29       ` skaller
2006-12-21 20:21         ` Chad Perrin
2006-12-21 13:30     ` Serge Aleynikov
2006-12-21 13:52       ` skaller
2006-12-21 14:59         ` Serge Aleynikov
2006-12-21 20:25           ` Chad Perrin
2006-12-21 20:41             ` Daniel Bünzli
2006-12-21 22:16               ` Chad Perrin
2006-12-22 12:21                 ` strong/weak typing terminology (was Re: [Caml-list] Scripting in ocaml) Daniel Bünzli
2006-12-22 16:51                   ` Tom
2006-12-22 17:34                     ` Daniel Bünzli
2006-12-22 18:16                     ` skaller
2006-12-22 18:47                       ` Daniel Bünzli
2006-12-22 19:42                         ` skaller
2006-12-22 20:03                           ` David Brown
2006-12-22 20:17                             ` Chad Perrin
2006-12-23  3:48                               ` skaller
2006-12-23  4:11                                 ` Chad Perrin
2006-12-22 20:19                           ` Chad Perrin
2006-12-23 12:58                           ` Daniel Bünzli
2006-12-23 16:06                             ` Chad Perrin
2006-12-23 21:50                               ` Tom
2006-12-26  6:10                                 ` Chad Perrin
2006-12-22 20:14                   ` Chad Perrin
2006-12-21 21:11             ` [Caml-list] Scripting in ocaml Serge Aleynikov
2006-12-21 21:27               ` Philippe Wang
2006-12-21 22:06                 ` Serge Aleynikov
2006-12-22 12:35                 ` Jon Harrop
2006-12-21 22:19               ` Chad Perrin
2006-12-22 12:37                 ` Jon Harrop
2006-12-22 18:52                   ` Chad Perrin
2006-12-22  2:51               ` skaller
2006-12-22 15:20                 ` Jon Harrop
2006-12-22 11:32               ` Jon Harrop
2006-12-23 18:50           ` Jon Harrop [this message]
2006-12-24  0:15             ` Serge Aleynikov
2006-12-24  3:30             ` skaller
2006-12-21 14:59 ` Richard Jones
2006-12-21 20:27   ` Chad Perrin
2006-12-21 23:35   ` Martin Jambon
2006-12-26 17:14 ` Aleksey Nogin
2006-12-26 23:36   ` Ian Zimmerman
2006-12-27 18:25     ` Aleksey Nogin
2006-12-27 18:39       ` Richard Jones
2006-12-27 19:20         ` Aleksey Nogin

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=200612231850.04578.jon@ffconsultancy.com \
    --to=jon@ffconsultancy.com \
    --cc=caml-list@yquem.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;
as well as URLs for NNTP newsgroup(s).