[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Mirage tutorial errors



Another top tip for learning OCaml is to do:

$ opam install utop

And then use that as your interactive top-level on *NIX.  It's awesome.

If you are using a browser, then try out the Javascript interactive toplevel:
http://try.ocamlpro.com

-anil

On 17 Oct 2012, at 19:47, Anil Madhavapeddy <anil@xxxxxxxxxx> wrote:

> Hi Yiming,
> 
> Lwt is a lightweight threading library for OCaml.  You can find out more
> about it here:
> http://www.openmirage.org/wiki/tutorial-lwt
> 
> ...along with some tutorials that work on Mirage (using the monolithic 
> version,
> but the principles are the same).  You can find out more at the homepage as 
> well:
> 
> http://ocsigen.org/lwt
> 
> However, if you are learning OCaml from scratch, you should learn the basics
> first.  We're working on an O'Reilly book due early next year, but the best 
> currently available text is:
> http://files.metaprl.org/doc/ocaml-book.pdf
> ...as well as:
> http://caml.inria.fr/pub/docs/oreilly-book
> 
> I'd encourage you to build simple servers using the tutorials there, and then
> move onto Mirage once you are a little more familiar with the basics.  Feel 
> free
> to ask any specific question on this list.
> 
> We are indeed planning to refresh the tutorial before the first beta release,
> and that'll probably happen in November sometime when I'm back.
> 
> best,
> Anil
> 
> On 13 Oct 2012, at 10:07, Yiming Zhang <sdiris@xxxxxxxxx> wrote:
> 
>> Hi, Anil
>> 
>> Thank you for your suggestions. So now my first goal is to write a RAM-based
>> KV (or more simply, just a KV) in Linux using OCaml. But I don't know
>> anything about Lwt. Is it "light weight thread"? And how to use it with
>> OCaml for future migration to Mirage? Please suggest me some references.
>> 
>> And according to your advice, I decide to totally forget the old monolithic
>> version of Mirage. But a tutorial of the new version of Mirage about 'what
>> is it', 'how to develop on it' and 'how to develop it' is definitely very
>> important for my research. Do you have a plan for the tutorial?
>> 
>> Thank you for your help!
>> Yiming
>> 
>> -----邮件原件-----
>> 发件人: Anil Madhavapeddy [mailto:anil@xxxxxxxxxx] 
>> 发送时间: 2012年10月5日 2:00
>> 收件人: Yiming Zhang
>> 抄送: cl-mirage@xxxxxxxxxxxxxxx
>> 主题: Re: Mirage tutorial errors
>> 
>> On 4 Oct 2012, at 09:03, Yiming Zhang <sdiris@xxxxxxxxx> wrote:
>> 
>>> Thanks Anil for the suggestions. I followed the instructions from 
>>> http://www.openmirage.org/wiki/install and have successfully run the 
>>> UNIX binary of mirage-www. I then cloned the tutorial from 
>>> git://github.com/mirage/mirage-tutorial and roll it back to last year 
>>> (# git reset b8efbd; # git checkout -f HEAD), but when I 'cd slides && 
>>> make', the following errors happened. What's the problem?
>>> 
>>> *******************************************
>>> root@debian:~/old/mirage-tutorial/slides# make 
>>> ./scripts/build_socket_crunch.sh
>>> + BIN=crunch_server
>>> ++ which mir-run
>>> + MIR_RUN=
>>> make: *** [run-socket_crunch] Error 1
>>> *******************************************
>> 
>> You only need to roll back the tutorial version if you are using the old
>> version of Mirage (the monolithic one).  It sounds like you installed the
>> latest version using OPAM, so you should use the HEAD of the tutorial.
>> Note that the *content* in Mirage tutorial is out-of-date at the moment, so
>> you'll either need to install the old monolithic one at this point, or
>> explore the new one.
>> 
>> Note my previous statement that you can get very far at this stage without
>> using Mirage at all, as you should be able to build much of the key/value
>> store logic in pure Lwt/UNIX (and normal OCaml), and port it to Mirage as a
>> second step. I'd really recommend you do this, as you need to learn OCaml
>> too, and learning a language and an experimental OS and a hypervisor at the
>> same time might not be the most effective way :-)
>> 
>>> 
>>> I also noted that there are two mirage-tutorials as well as 
>>> mirage-wwws, respectively in git://github.com/mirage/XXX and git://github.
>> com/avsm/XXX.
>>> To my understanding, the latter is for the monolithic version, right? 
>> 
>> The mirage/* repos are the master ones, and the avsm/ ones are my personal
>> working copies which may be out of date or broken.
>> 
>> -anil=
>> 
>> 
> 
> 




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.