<rwmjones> | let hello () = print_endline "hello, world";; |
<xavierbot> | val hello : unit -> unit = <fun> |
<rwmjones> | hello ();; |
<xavierbot> | hello, world |
<xavierbot> | - : unit = () |
Xavierbot is an OCaml toplevel which connects to an IRC session. This is a teaching tool to allow people learning OCaml and their teachers to cooperate in an IRC chat session, trying out different OCaml commands with a shared toplevel.
It is moderately secure (or at least, the best efforts of OCaml
hackers everywhere have failed so far to find any way to subvert it).
It doesn't allow access to the local filesystem. It uses Unix rlimits
to prevent infinite loops or using too much memory. And it disables
dangerous OCaml features such as the external
directive,
Obj.magic
, unsafe String functions, and so on.
However it only has limited flood protection so it is possible for people to instruct it to flood itself off the channel (it won't reconnect). This is intentional -- the security is there to protect the machine running xavierbot from corruption, not to keep connected to the channel at all costs.
It supports some limited commands (do: xavierbot help
to find them), and can be told to go to sleep, restart the toplevel
and a few other things.
The original idea came from Revence Kalibwani. Thanks to all the people on #ocaml (IRC channel on freenode.net) who helped out with testing.
For the rest, please read the enclosed README file.
$Id: index.html,v 1.5 2010/04/04 19:42:00 rjones Exp $