Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[Caml-list] NaCl/OCaml (OCaml as a client-side web programming language)

79 views
Skip to first unread message

Jeremy Bem

unread,
Mar 4, 2010, 6:22:42 PM3/4/10
to caml...@yquem.inria.fr, caml-new...@lists.idyll.org
Hello,

I'm pleased to announce the initial release of NaCl/OCaml, a version
of the native-code OCaml compiler whose output can be validated as
safe to run over the web. Together with the "Native Client" plug-in
under development at Google, this means that OCaml can now be used for
client-side web programming!

For more about Native Client, see http://code.google.com/p/nativeclient/.

For NaCl/OCaml, including a ray tracer demo, see
http://code.google.com/p/nacl-ocaml/.

Feedback is welcome and appreciated. Please feel free to email me,
report bugs at the project website, or email
nacl-ocam...@googlegroups.com.

Thanks,
Jeremy

_______________________________________________
Caml-list mailing list. Subscription management:
http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
Archives: http://caml.inria.fr
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs

Jeremy Bem

unread,
Mar 4, 2010, 8:37:16 PM3/4/10
to Daniel Bünzli, caml-list List
Hi Daniel,

I hope to post more documentation, but in a nutshell:

standard library: Yes, but file operations are typically unavailable
at the NaCl level and will fail.

Str (and Num): I haven't included these yet, but I intend to.

Unix: Similar capabilities are provided by the "Service" library
instead. This seemed slightly more in keeping with the NaCl
underpinnings than hacking Unix into submission.

Third party OCaml modules should be compilable and usable, just use
"nacl-ocamlopt" in place of "ocamlopt". Of course complex libraries
may present complications in practice (e.g. if they try to access the
filesystem).

C bindings: it should be possible to interface with C code as per the
OCaml manual, again substituting "nacl-ocamlopt" for "ocamlopt". The
NaCl-specific libraries that are included (such as "Multimedia")
provide a template that can be emulated.

Hope that helps,
Jeremy

On Thu, Mar 4, 2010 at 8:28 PM, Daniel B�nzli
<daniel....@erratique.ch> wrote:
> Hello Jeremy,
>
> Interesting contribution.
>
> Maybe this is more a question about native client but could you
> elaborate on the kind of constraints nacl puts on the client code.
> Which libraries can be used ? The standard library ? str.cmxa ?
> unix.cmxa ? Third party pure caml modules ? C bindings ? etc.
>
> Best,
>
> Daniel

David Rajchenbach-Teller

unread,
Mar 5, 2010, 4:39:05 AM3/5/10
to Jeremy Bem, caml...@yquem.inria.fr, caml-new...@lists.idyll.org
Interesting. I'm wondering: how close is this to the MMM approach of safe ocaml browser plug-ins?

Cheers,
David

Vincent Balat

unread,
Mar 5, 2010, 6:41:23 AM3/5/10
to caml...@yquem.inria.fr, Jeremy Bem

Very interesting! We will try to make Eliom Client (the client side
programming framework for Ocsigen) work on it.

A summary of solutions to use Ocaml for client side programming:
- OcamlJs (by Jake Donham): compiler OCaml -> JS
- O'Browser (by Benjamin Canou): Ocaml virtual machine written in JS
- NaCl/Ocaml: native code! (but requires Native client to be installed and
only x86 for now)
- and there may also be a compiler Ocaml bytecode -> JS soon ;-)

0 new messages