[e-lang] OCaml commentary

James Graves ansible at xnet.com
Fri Feb 17 17:06:50 EST 2006


OCaml is still very Lispy, but they are trying to hide the s-exprs.  The
syntax contains all kinds of additional rules you need to remember... sigh.

I haven't dug into the macro system yet.  But at least it has one, and
you can define new syntax with it.

Lots of libraries.  A lot more than I expected for a language I paid
hardly any attention to over the years.

Native code compilation on many platforms.  Fast too.  Spiffy.

---------------------------------------------------------------

As far as CapTP goes, there is at least one http server library
(OCaml-HTTP) and a client library (OCamlnet) listed at Caml hump:

http://caml.inria.fr/cgi-bin/hump.en.cgi?sort=0&browse=40

And there is an SSL wrapper (OpenSSL only) as part of the Savonet project:

http://savonet.sourceforge.net/wiki/OCamlLibs

The Marshal library for object serialization does not do type checking
(which I found suprising), so some work will be needed there:

http://caml.inria.fr/pub/docs/manual-ocaml/libref/Marshal.html

What other parts would be needed for a promise pipeline implementation?

I've got some questions on certificate signing and management in
relation to CapTP.  But I'll have to send those later.

Cheers,

James Graves

P.S.  This talk of exceptions leaking data has brought a fanciful image
to my mind.

A malicious application has access to a library, and wishes to discover
all it can.  So it feeds the library routines all types of bad data,
hoping to cause exceptions, and recording the results.

And then the creation of defenses against such abuse.  Where libraries
notice a particular client has been causing problems, and then
unilaterally blocks its invocations.  This would be analogous to
noticing a string of failed login attempts from a particular Internet
host, and then adding that host to the firewall block rules.

P.P.S.  I was indeed mixing up Haskell with OCaml.  Haskell, monads.
OCaml, no monads required.  Got it.

So I still have to learn Haskell too.


More information about the e-lang mailing list