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
Re: [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: 2004-02-05 (16:43)
From: Leszek.Holenderski@p...
Subject: Re: [Caml-list] Is Caml good for embedded systems?
Basile Starynkevitch wrote:
> 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.

I don't have any specific kind of embedded systems in mind. I was just probing,
to check whether Caml could be advertised for embedded programming in Philips.
Since Philips is involved in embedded systems of various kinds I didn't want to
limit the subject. The simplest example would be video processing (say, digital
TV and 3D TV).

I've been promoting Caml for desktop programming for some time now (with rather
modest results so far :) and I'd like to try another strategy to introduce Caml
in Philips.

> Some old version of Caml-light (not Ocaml) has been ported to some old
> Palm PDA, IIRC.
> IIRC, someone experimented embedding Ocaml [or some Caml variant...?]
> (using the bytecode interpreter) inside the Linux kernel.

I'd prefer native code. Also, something lighter than Linux.

> > 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).

It is. In embedded programming you often (over)use various encodings, say
packing 4 bytes (colour components) into one 32-bit word.

> I see others potential issues
> 1. embedded systems usually are extremely tight on memory space, and
> the runtime does take some space.

Not necessarily. In video processing you often have access to 16, 32 or 64MB.

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

Didn't know. This is serious.

> 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.

In most cases you can live with it. Hard real-time embedded applications are in
fact not that common. And even then only a small part is critical, usually.

> 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)....

That's what I hope for, and that's why I'd be very interested to know if
anybody has some evidence for this.


Leszek Holenderski, Philips Research, The Netherlands

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