| 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