[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: Build errors
There are two ways to run Javascript code: - browser (the default js_of_ocaml usecase), where access to storage is abstracted away through a k/v interface, and networking via websockets. So only the higher level modules would have any meaning there. - node.js, which has full system bindings and can access tuntap and mmap. There are lots of bindings for visualisation of systems stuff using node, such as: https://github.com/mranney/node_pcap The latter requires some changes to the js_of_ocaml runtime to work properly though, although if we can make it work, it's a really nice *development* environment for OCaml code, as you can visualise and track objects dynamically, and then recompile to native code for high-speed execution. -anil On 12 Apr 2012, at 14:29, Haris Rotsos wrote: > just out of curiosity for the node.js and unix backend, how do they > handle the OS.Netif module since they don't expose raw socket > functionality? > > On 12 April 2012 14:17, Anil Madhavapeddy <anil@xxxxxxxxxx> wrote: >> 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 >> >> > > > > -- > Charalampos Rotsos > PhD student > The University of Cambridge > Computer Laboratory > William Gates Building > JJ Thomson Avenue > Cambridge > CB3 0FD > > Phone: +44-(0) 1223 767032 > Email: cr409@xxxxxxxxxxxx >
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |