Re: Ocaml applications

"Hendrik Boom [email protected] [ocaml_beginners]" <[email protected]>
Newsgroups gmane.comp.lang.ocaml.beginners
Message-ID <[email protected]>
On Mon, May 11, 2015 at 07:43:42PM -0400, Hendrik Boom [email protected] [ocaml_beginners] wrote:
> On Mon, May 11, 2015 at 10:03:34PM +0200, 'Mr. Herr' [email protected] [ocaml_beginners] wrote:
> 
> > Then it excels in systems programming: the Xen hypervisor is written
> > in OCaml I think, and work in this direction goes on with Mirage
> > (www.openmirage.org/) which will provide OS services for
> > applications that run on Xen (one might say a container on
> 
> I took a very casual look at some of ite source code, and that part 
> (qemu) appears to be written in a dialect of C or C++.
> 
> Evidently the wrong part.
> 
> Would you know just which of xen's components is  written in ocaml?  
> I'm curious, because the low-level delay-sensitive hardware interaction 
> that things like hypervisors need don't seem to be ocaml's strong 
> point.  Not that I think ocaml is likely to be unsuitable for the 
> project, but it will likely have to be supplemented with tight 
> real-time components that are insensitive to garbage collection delays.
> 
> Most of serious system programming is not concerned, however with 
> low-level hardware interaction.  The main things you need there are 
> tools for avoiding bugs.  Static typing helps a lot there, and usually 
> enables a compiler to generate fast code as well.
> 
> For my money ($0 because it's all free softwarae) I consider ocaml and 
> Modula 3 to be wotrhy competitors in the system programmming area.
> I believe Modula 3 has been furnished with true multicore parallel 
> processing by now, though garbage collection requires that all its
> processes stop and wait for it.

There's one thing neither ocaml nor Modula 3 handle well.  You might 
want to write a code generator that generates new executable code and 
adds it dynamically to the already running program (yes the one that 
just generated that code).  In Lisp and Scheme, this kind of extension 
is very much in the language designat least it's very much in the 
language design (provided you extend your program with more List code), 
But many implementations gie uup on doing this efficiently.  They 
handle it with a raw source-code interpreter or compile to interpreted 
byte-code instead of to machine code.

-- hendrik
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.