caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Philippe Wang <philippe.wang@lip6.fr>
To: "Daniel Bünzli" <daniel.buenzli@erratique.ch>
Cc: Philippe Wang <philippe.wang@lip6.fr>, caml-list@inria.fr
Subject: Re: [Caml-list] (Announce) "OCAPIC" : OCaml for PIC18 microcontrollers
Date: Fri, 5 Nov 2010 15:26:06 +0100	[thread overview]
Message-ID: <C7AE3AC0-F37A-4EE9-8275-AB08189513BE@lip6.fr> (raw)
In-Reply-To: <AANLkTikoadiAfB_MwGeowjxRRJWS18iEMQaijfzTuX6d@mail.gmail.com>

PIC ASM is the first "programming language" Benoît learnt, a few years ago. He has practiced it ever since.
But meanwhile he learnt OCaml (among other languages). A few months ago, he suggested me to implement an OCaml virtual machine running on PICs, with maximum performance efficiency in mind. This is why OCAPIC's VM is implemented in ASM. 

The purpose is of course to program PICs with a high level language while remaining (relatively) *very* efficient.

Vincent St-Amour and Marc Feeley have a similar project (Scheme on PICs) which a much higher priority on portability: their VM is implemented in C code.
http://www.ccs.neu.edu/home/stamourv/picobit-ifl.pdf

The "side effect" of our project — which can interest many OCaml users — is that OCAPIC provides "ocamlclean", which is a tool that takes an OCaml bytecode binary (produced by ocamlc) and reduces it by (statically) eliminating most of its deadcode (and of course dynlink is thence broken; note that dynlink is not relevant on PICs). This tool is independent from the rest of OCAPIC.
Actually, this tool was mandatory for programs using OO-layer : without it, bytecode binaries embedding OO-layer were to big to fit on our PICs. 

Cheers,

Philippe


On Nov 5, 2010, at 1:35 PM, Daniel Bünzli wrote:

> Interesting project. Was the choice of PIC based on technical reasons
> or just familiarity of the authors with these chips ?
> 
> I would have liked to give it a try but unfortunately I work AVRs and avr-gcc.
> 
> Best,
> 
> Daniel


  reply	other threads:[~2010-11-05 14:26 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <951AD91B-DA92-4F92-AE90-86A13DDB2357@lip6.fr>
2010-11-04 21:44 ` Philippe Wang
2010-11-05 12:35   ` [Caml-list] " Daniel Bünzli
2010-11-05 14:26     ` Philippe Wang [this message]
2010-11-06 17:47   ` Goswin von Brederlow
2010-11-06 19:19     ` Philippe Wang
2010-11-11  1:09       ` ocamlclean : an OCaml bytecode cleaner (Was: (Announce) "OCAPIC" : OCaml for PIC18 microcontrollers) Philippe Wang
2010-11-11  5:52         ` [Caml-list] " Julien Signoles
2010-11-11 11:57           ` Philippe Wang

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=C7AE3AC0-F37A-4EE9-8275-AB08189513BE@lip6.fr \
    --to=philippe.wang@lip6.fr \
    --cc=caml-list@inria.fr \
    --cc=daniel.buenzli@erratique.ch \
    /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).