Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
[Caml-list] Is Caml good for embedded systems?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Basile Starynkevitch <basile.starynkevitch@i...>
Subject: Re: [Caml-list] Is Caml good for embedded systems?
On Wed, Feb 04, 2004 at 02:28:20PM +0100, wrote:

> I wonder if anybody attempted to use Caml (or any of its variants)
> to program embedded systems?

You didn't define what you mean by embedded systems... There are lots
of various definitions, and you didn't gave any (real or fictiuous)
examples, so we have to guess.

Some old version of Caml-light (not Ocaml) has been ported to some old

IIRC, someone experimented embedding Ocaml [or some Caml variant...?]
(using the bytecode interpreter) inside the Linux kernel.

> The main obstacle, as I see it, is a rather poor arithmetic. It
> seems that the only directly supported numerical type is 31-bit
> integers. Everything else (floats, 32-bit integers, fixed-point
> integers) has to go via pointers.

I'm not sure that the arithmetic is poor enough to be a problem in
practice (but YMMV).

I see others potential issues

1. embedded systems usually are extremely tight on memory space, and
the runtime does take some space.

2. The current runtime requires floating point (and also some IO
support) in the runtime - this can be worked around with some 

3. most importantly, embedded systems usually have significant real
time requirements, and the Ocaml garbage collector, even if it is very
performant, is not exactly realtime (and coding realtime GC is a
nightmare, and has important costs), but behave nicely even in
interactive usage.

Still, I tend to believe that the current Ocaml is usable in embedded
systems, provided they are powerful enough (i.e. a 32bit CPU, with at
least 16Mb RAM... ie something which is not smaller than 10times less
my average desktop)....

What kind of embedded systems do you have in mind?

Basile STARYNKEVITCH -- basile dot starynkevitch at inria dot fr
Project - INRIA Rocquencourt --- all opinions are only mine 

To unsubscribe, mail Archives:
Bug reports: FAQ:
Beginner's list: