"Menhir is an alternative parser generator that is generally superiorīack quite a few years. I followed the recommendation in the Real World OCaml to use it, rather than ocamlyacc: It also gathers information on where OCaml is currently being taught.Ī menhir (French, from Middle Breton: men, "stone" and hir, "long" ), standing stone, orthostat, or lith is a large upright standing stone.Ĭoincidently, Menhir, is also the name for LR(1) parser generator for OCaml. The page contains resources for teaching OCaml. I helped out to setup the Ocaml teaching resource page for the website. The current implementation requires further testing and development, nevertheless, the current ability to deploy OCaml code on the phone with nice native app like user interface, I believe, serves as a nice substrate for further for it.Ģ. I then used Ionic framework which translates JS apps to native mobile apps to create the front end. Using js_of_ocaml I converted the contacts app (backend) code into JS which allowed me to reuse it in the JavaScript app development framework such as AngujarJS. In a nutshell, I developed contacts app which uses MoamaML code to store all contacts in the Moana graph, which also contains various access control policies for various requesters. I will have a separate blog about it soon. I was also working on showcasing the the power behind MoanaML and the ideas behind a PIH-type applications by developing a contacts app prototype. The current MoanaML has a couple of implementations including one for Irmin. During the process I learnt a lot about type safe, functional languages and at this stage, this paradigm aligns extremely well with Moana's AC mechanisms (I am working on the blog about it). MoanaML is essentially implementation of Moana in OCaml. Both Mirage OS and Irmin( for many good reasons ) are written in OCaml so naturally I had to learn OCaml. So the main challenge was to develop and deploy Moana on top of Irmin. It would be great to see Moana like abstraction on top of Irmin which I believe will move the overall design closer towards the overall goals of the UCN project.
Applications can also specify access control policies which can be then enforced by the system. Arguably, this higher level of abstraction is much closer to the developer world, which " allows developers to focus their efforts on functionality and spares their time fiddling with low level tasks, such as information synchronisation or storage". Storage abstraction through which applications communicate with each other by appending and observing the shared graph. Moana, an information-centric middleware for distributed services and applications. Both very interesting system which I recommend to check them out.Īfter learning more about the project, I felt that it's very important to provide a very useful and efficient service abstraction for application and system developers to use in order to simplify the development on top of such a systems.Įnter Moana. The current two main building blocks are Mirrage OS for deployment and Irmin for Git-like persistent storage. Make sure you do this step before installing Eclipse or OCaIDE. You can download it from this this site (after accepting the terms & conditions). Next, install the Java Development Kit (JDK) 7.Create a symbolic link in that lib directory to the libX11.6.dylib file: > cd ~/lib > ln -s /opt/X11/lib/libX11.6.dylib libX11.6.dylib.Users/stevez) create a directory called lib (if one does not already exist): > cd > mkdir lib From the terminal, in your home directory (e.g.Removed these instructions, because ~/lib isn't on the default PATH for Macs, and because with most recent SW updates this step isn't necessary.If this isn't the case, try reinstalling XQuartz and then contact the course staff for help. Check to see that the directory /usr/X11/lib exists and that it contains the file libX11.6.dylib (this should have been created when you installed XQuartz).Before moving on to the next step, make sure you LOG OUT of your user account so that the X11 install can complete.
Install Apple's XQuartz version, which is available here:.Mac Users Only Install X11 libraries (needed for the OCaml graphics libraries to work):.