Ha! This fails for a fun reason.
The master/ branch still has the work-in-progress _javascript_ backend, but it is only activated when js_of_ocaml is installed (and it is not currently installed on my test machines). In the Node case, we need bindings for the OS.* modules (specifically, Netif for Openflow), and hence the build failure. In order for Node to work correctly, we need:
- To patch js_of_ocaml to support _javascript_ Buffers as present in Node.js. Raphael had a few patches, but not finished. This is because _javascript_ strings are immutable, whereas OCaml strings and buffers are mutable (and so wrapped as JS objects).
- Figure out the latest Websocket story (I have avsm/ocaml-socketio on Github which started implementing it).
- Look at how WebStorage works these days (SQL? Key/Value?)
I'm actually working in the slim/ branch of the tree as part of a benchmarking effort at the moment, where I have removed all of the Node code, and several of the higher-level protocols such as HTTP, leaving just the bare-bones network stack up to TCP. The plan is to use this as a baseline, and add external library support for stuff like DNS, XMPP, HTTP and so forth. I've got some interesting early benchmark results which I'll send to the list separately later.
For master/, you can edit lib/Makefile to turn off Node (I've just pushed a change to do this to my tree)
-anil
On 12 Apr 2012, at 13:53, Sebastian Probst Eide wrote:
I am trying to build mirage on my xen box.
I am on Ubuntu 11.10, kernel 3.something
I have OCaml version 3.12.1 installed from source.
I am using mirage from avsm/mirage
When running my friend make, I get:
cp openflow/openflow.mli std/openflow.mli
/usr/local/bin/ocamldep.opt -pp 'camlp4o.opt -I ../../../syntax/_build str.cmxs pa_mirage.cmxs -cow-no-open -lwt-debug' -modules std/openflow.mli > std/openflow.mli.depends
/usr/local/bin/ocamlc.opt -c -nostdlib -annot -g -pp 'camlp4o.opt -I ../../../syntax/_build str.cmxs pa_mirage.cmxs -cow-no-open -lwt-debug' -I std -o std/openflow.cmi std/openflow.mli
+ /usr/local/bin/ocamlc.opt -c -nostdlib -annot -g -pp 'camlp4o.opt -I ../../../syntax/_build str.cmxs pa_mirage.cmxs -cow-no-open -lwt-debug' -I std -o std/openflow.cmi std/openflow.mli
File "openflow/switch.mli", line 711, characters 23-34:
Error: Unbound module OS.Netif
Command exited with code 2.
make[1]: *** [node] Error 10
make[1]: Leaving directory `/home/xen/code/mirage/lib'
make: *** [all] Error 2
Any ideas?
Thanks!
All the best,
Sebastian
--------------------
Things I have installed:
findlib-1.2.8
js_of_ocaml-1.1.1
lwt-2.3.2
ocaml-3.12.1