The rain continues to plummet down relentlessly as "summer" starts in OCaml Labs. The most exciting news has been the public release of the Real World OCaml, which hit the front page of the usual news aggregators and generated huge interest! This (reminiscent of the Xen 1.0 release) promptly took down servers for a couple of hours, but we managed to minimise downtime in time for the Californians waking up.
O'Reilly has also started selling PDF copies of the book under their Rough Cuts program. This gives you a copy of the final book when it's released too. Commenting is still open on the online version, so please do feel free to participate there if you have time.
Mirage: Anil and Dave did the last of the sweeping build changes to make Mirage friendlier to use for beginners. Previously, we required a custom OPAM switch to build kernels, but now we use virtual packages to separate the choice of compiler and packages. This of course breaks all our documentation, but we're going to do a big sweep in July before OSCON with the new scheme. Vincent has also been burning through the core platform libraries, cleaning them up and adding documentation strings. He is also building a shared memory vchan driver that will make parallel-Mirage unikernels very easy to coordinate on the same host.
The huge news from our friends at Citrix is the open-sourcing of XenServer, which is the popular Citrix product that embeds the OCaml XAPI cloud management stack. There are almost 100 major components released as part of this, several of which can be directly reused with Mirage. Mirage was always an ambitious project, but it's all coming together now thanks to bold moves such as this from Citrix!
Signpost: We woke up to the excellent but slightly scary news that our USENIX FOCI paper was accepted. This now means that we get to present it in August at USENIX Security, but the team is now racing to pull together the prototypes into a complete system before the conference. Nothing like a deadline to focus the mind! We're also working on the camera-ready version of the paper, which we will share here when it's ready.
OCamlot: David Sheets did an astounding job at pulling together a working continuous build system in a very short amount of time, and promptly managed to melt some of the older non-x86 machines in Anil's office. Once Anil sadly replaced them, the builder churned through a matrix of different compiler versions (4.0,4.1dev,4.2dev), architectures (x86, x86_64, ARM, PowerPC), and operating systems (Debian, Ubuntu, FreeBSD, OpenBSD to start with). There's a development URL, but the next step is to retire this and move it to a proper home at ocaml.org.
Having continuous build for OPAM is really, really useful though, as it lets us vet pull requests on several architectures before merging them. It also let Anil repair OCaml on OpenBSD/macppc too, which is possibly the most obscure fix he's done in a while.
The next steps with OCamlot are to take a shot at porting the core to Jenga, which is Jane Street's next-generation distributed build system. This should let us improve the fault-tolerance and logging aspects of it before putting it properly into production later in the summer.
Ctypes: The May release brought with it a good chunk of feedback, so Jeremy spent time incorporating that and contributing to the Real World OCaml ctypes chapter. He also added support for garbage-collecting closures passed to C, and also very cool support for printing C types and values. Our friends at Citrix have started looking at ctypes, and Rob Hoes has already used it to write bindings to the Netlink Protocol Library Suite.
OPAM-doc: Vincent Botbol got the documentation generator stable enough to pass the Core library through. This is particularly challenging since Core exercises pretty much every trick in the book when it comes to the use of the module system. However, Vincent successfully demonstrated the workflow of OPAM-doc at the end-of-month meeting, and is aiming to have a public release via OPAM in July (hopefully in time for the next beta release of Real World OCaml, which uses Core heavily).
Real World OCaml: As mentioned earlier, the beta release of RWO went splendidly, with a pleasing vibe that the book is what people expected. There were some interesting criticisms of the choice of Github authentication, but we've had over 6000 registered commentators despite this (and of course, we have plans brewing to tackle the identity problem).
No beta release is perfect, of course, and our now-public commenting system has resulted in over 1500 issues being raised. Well, that's all of Yaron, Anil and Jason's free time gone for some time!
OCaml.org: We're in the process of looking at the site as a whole and
designing the workflow we'd like to have for growing and maintaining it. Some
discussions have taken place about using Markdown in place of the current HTML
snippets, which would make it easier for external contributors to get involved.
In the meantime, Amir has converted the current site to Markdown format to see
how this process would work in practice. You can see his experimenting and
scripts in the temporary repo in
Philippe also showed off MPP
at the internal meetings, and is stabilising it for a public release this
summer (once it has been integrated into the ocaml.org workflow).
This month also had a number of programming language gurus show up at the Lab for the Algebraic Effects and Handlers workshop organised by Sam Staton. Most of the group attended this, as we're all interested in how to encode effects for several of our projects (most notably Irminsule).
We also enjoyed a visit by Benoît Vaugon, who gave a talk on his
OCaml-to-C compiler, and also participated in a talk on
also chatted with us about his alternative GADT-based implementation of
Printf, which promises to both
speed up and simplify the printer support in OCaml (and also relieve Mirage of
another dependency on
May is exam time in Cambridge, and the corridors of the OCaml Labs resounded with the wailing of frantic students finishing their dissertations and preparing for exams. We welcomed Vincent Botbol to join us for a summer internship, and he started hacking on the new opam-doc right away.
Anil, Thomas, Leo and Amir also visited Jane Street HQ in New York City, where we had a productive couple of days reviewing our projects and getting feedback from them about approaches to multicore and type system enhancements. Ashish Agarwal also organised a fun evening with the New York OCaml Users Group, where Anil and Thomas presented our plans for the nascent OCaml Platform.
Mirage: This was a month of consolidation and bugfixing in Mirage. We've been settling into weekly meetings to coordinate the hacking between us and Citrix, and the minutes (1 2 3) may be useful if you want to catch up. The biggest bugbear is always the build system, and we've been exploring the use of Jenga as the eventual async-aware coordination and build system for running Mirage kernels. Dave made great progress with a message-switch that coordinates multiple kernels, and Balraj fixed several performance regressions in the TCP/IP stack by building unit tests that spawn millions of parallel TCP connections.
Signpost: We took a break from building prototypes to submit a paper on the basic design to the USENIX Free and Open Communications (FOCI 2013) workshop. Haris and Heidi blazed a path on writing this paper, and we've got even more ideas rolling around about how to use DNSSEC to break the cloud deadlock. The ocaml-dns continues to grow features too.
Ctypes: Jeremy announced the first release of a new foreign-function mechanism for OCaml that doesn't require you to write any C stubs at all! You can browse the source code and tutorial, and install it via OPAM. This is very much the first 0.1 release, and we have exciting future developments to turn this into a full-fledged replacement for the fast-but-rather-difficult-to-use-right OCaml FFI.
OPAM-doc: Vincent Botbol started building on Leo's work on the new
opam-doc tool. This is intended to
replace the venerable
ocamldoc with one that uses all the latest features of
the compiler. In particular, it can use the new typed AST
cmt output to
avoid duplicating the compiler functionality, and can also build up a global
package table to generate complete cross-references across an entire OPAM
OCamlot: David has been building up the libraries and tools needed for the continuous build infrastructure. This includes much-improved ocaml-github, bindings, which are now being used to power the Real World OCaml site as well as well as OCamlot. In addition, he's got an interesting collection of regular expressions to automatically triage common failures from OPAM (such as missing external dependencies), that should help reduce the manual burden of getting thousands of tests results dumped on the small OPAM team.
OCaml-Java: Xavier Clerc has been hacking away at his next-generation OCaml-Java backend (using many new features in JDK7). He's released a preview of the bindings to Java concurrency, and is looking for feedback on it.
Performance profiling: Mark Shinwell has been hacking on improving the
integration of the runtime with
perf. This should give us the hooks to
reliably track where memory was allocated. His branch isn't going to land in
OCaml 4.1, but should be available as an OPAM switch for people to easily
try out when it's more stable.
OCaml.org: Philippe and Amir have been putting their heads together with Christophe and Ashish to turn the ocaml.org build pipeline into something a little more structured. Philippe is building a template processor for this purpose. The OCaml site is a more complicated than the average site due to our desire to embed js_of_ocaml interactive toplevels throughout the tutorials, and also to have active OPAM integration throughout the site to make it easier for newcomers to sample the language.
The design of a handful of pages are also now available to preview, if you
don't mind some manual git cloning. The best way to do this is to clone the
temporary repo onto your local
machine and look in the
new-design/_site directory. There are examples of
the home page, 100 lines of OCaml page and several others. Since we're just
getting started with applying these changes the site isn't clicky (yet). For
some extra fun, try resizing your browser window and see how the pages reflow
to suit smaller (mobile) screens!
Real World OCaml: Anil, Yaron and Jason continue to work hard on getting a release out of the door. We shipped a final alpha6 this month that is chapter-complete, and have been preparing for a big public June release of the book. Thousands of comments have been received and closed already, making this an unusually active (but incredibly useful) ongoing review process. Leo and Jeremy also contributed portions of text for the Objects and FFI chapters in alpha6, and join Stephen Weeks as external contributors to the book.
Meanwhile, Leo himself has recovered from the elation of being granted his PhD, to the harsh reality of having to finish corrections. He has been forced by his colleagues to stop hacking on OCaml and submit his final thesis. Rumours are that he will reemerge in June after delivering his SAS 2013 talk on using an implication-algebra generalisation of logic programming to concisely analyse OpenMP programs for parallisation opportunities.
This month's talk was courtesy of Mathias Bourgoin, who visited from France and gave a talk on his PhD work on GPU processing. His tool, SPOC has been released onto OPAM and is a set of easy-to-use tools for generating CUDA and OpenCL code, and also a camlp4 extension to write external kernels directly in OCaml. Thanks for visiting, Mathias!
It's been a heads-down month of hacking at the Labs for April, as the group have settled into their projects and are concentrating on getting code out. We did take the opportunity to redesign the project pages as the active projects grew.
We welcomed Euan Harris as a new visitor, and he has begun work on a distributed actor library in the vein of Erlang's OTP. The prolific Daniel Bünzli also joined us for the summer to work on his Vg visualisation library. He's based out of the Citrix offices, and is also contributing to the Xen project.
OPAM: The project has entered a bug fixing stage after its release, and the package set has steadily grown via external contributors. David Sheets has been hacking away on the automated OCamlot bot, and we released improved Github API bindings. We're aiming to get OCamlot live and running in May, so stay tuned! There is a steadily growing collection of odd ARM and PowerPC devices in Anil's desk that will generally make it easier to test your OCaml code in unusual environments.
OCaml.org redesign: Progress on the website continues and we're now working on the actual HTML/CSS from the earlier mockups. We'll be publishing these in a fork of the website repository, so do feel free to create issues there with your comments. Philippe has begun the MPP templating tool to glue together all the website scripts more coherently. Discussions about this take place on the infrastructure mailing list, which is open to all.
The monthly OCaml get togethers in the Cambridge Makespace are also really fun. This month saw around 30 people wander through the doors, and work through the latest excerpts of Real World OCaml. And around midnight, Jeremy and Leo competed to find more and more obscure bugs in the corners of the OCaml type system... You can track the subsequent meetups via the NonDysFunctional Meetup group, which includes functional programmers from around the Cambridgeshire area. Jon and Anil also attended the Yahoo Hackday in London, where Jon met a giant robot and started SSL bindings, and Anil experimented with js_of_ocaml LocalStorage for Irminsule.
Mirage: We've finally got a release date for the first preview of Mirage, which will be at O'Reilly OSCON this July! Pulling together the release is a big endeavour, and the team has started weekly calls to work through the project. The minutes for these are online, so you can browse them to catch up. There's also a slightly scary checklist of all the libraries that need to be released before July, so the team has its work cut out for it! The Xen group also announced that it is joining the Linux Foundation, and the press release gave Mirage a prominent mention as one of the key recent developments in Xen.
Irminsule: Thomas now has a full implementation of the git file format in his cagit repository, and the interfaces for Irminsule's branch-consistent model are coming together. He gave a demo to the Mirage team, with discussion notes available.
Multicore and Concurrency: Stephen Dolan's made great progress on bringing up a multicore runtime using thread-local storage, which results in a surprisingly compact diff to the OCaml runtime. We're now moving onto the higher-level bindings to use the parallel runtimes effectively from within OCaml. We also began a wg-parallel working group in order to start figuring out the evolution of the Lwt and Async concurrency libraries.
libffi: Jeremy got frustrated by the difficulty of writing safe C bindings, and started the ctypes library, which offers a pure OCaml solution. This even includes managing callbacks across the OCaml/C divide, and uses libffi under the hood to remain efficient and platform-independent. There is the exciting possibility about hooking this library with the compile-time metaprogramming to eliminate all performance cost, so we're going to spend some time on this project to make it a well-documented alternative to the existing C FFI.
The OCaml Labs talk series continued with a visit from Francois Pottier ad Jonathan Protzenko from the INRIA Gallium research team. Jonathan presented their Mezzo language, which places emphasis on aliasing and controlled access to mutation. This is of particular interest to several of our systems projects that do not require the full power of OCaml to build low-level systems components, and Raphael, Alan, Leo and Anil had productive discussions about how we could try Mezzo out when it's released.
The OCaml Labs hackers continue to arrive, with David Sheets arriving from sunny San Francisco, and Xavier Clerc visiting from the less-sunny INRIA in France. David's done great work on several OCaml libraries such as Cohttp and on WebGL, and he's diving straight into a first release of OCamlot before starting his PhD later in the year. Xavier will work on releasing his OCaml Java 2.0 rewrite this summer, which takes advantage of all the latest JDK features for non-Java languages.
A new research grant has also been awarded to Jon Crowcroft. The Hub of All Things is a £1.2m multi-disciplinary project funded by the RCUK Digital Economy Programme and led by Irene Ng in Warwick. HAT aims to create a home platform, under the user's control, where a market to exchange their personal data for new products and personalised services could exist. The Cambridge piece of this work will use Mirage for embedded systems programming, and Signpost, to enable devices to connect and communicate with each-other across the edge network.
OPAM: OPAM, the popular OCaml Package Manager, recently had its 1.0 release! OPAM has been in development for just over a year, and this is a significant milestone for the project. The OPAM package repository has had over 500 issues, closed over 400 pull requests and now contains over 450 packages (and more than twice that number if you consider that multiple versions are available). This kind of user adoption is a fantastic sign for the OCaml community. We're very happy to be using OPAM as a key piece of the upcoming OCaml Platform and the continuous integration and test system.
OCaml.org redesign: Amir extended the Balsamiq mockups into more realistic static site designs that can be found on the wiki. We're building on the theme we began with the OCaml Logo, but also including the full functionality we want for the revamped site. The samples should give people an idea of the colour schemes and images we'll be using, and feedback is very welcome. Next, we're creating the HTML/CSS templates we need to make these mockups a reality.
OCamlot: Within hours of getting off the plane, David was already getting well into the OCaml-based test tool and working on the pieces we need to get to a usable first version. The OCamlot workflow was last described in Amir's Balsamiq mockups in case you want to catch up. This work is made all the more important as Jane Street continues to demonstrate their strong commitment to open-source by sending in OPAM pull requests every week for new releases of their libraries. The testing for these releases is currently handled manually and we're really looking forward to having them dealt with automatically!
Mirage: There is much preparation ongoing for the big xen.org incubation, which has now been approved by the Xen community board. Vincent's work on Mirari is going very well, and he's updated the Mirage installation instructions to use Mirari instead of the manual process required before. Anil and Mort also attended and presented the ASPLOS 2013 paper in Houston. For the curious, Ben's Beans is the only good coffee we could find suitable for a European in Texas.
Irminsule: Now that the core of Mirage is heading for release, the team is turning their attention to the storage and distributed programming challenge. Thomas and Anil have been working on a new policy-free, branch-consistent storage layer that exposed a raw git-like universe to Mirage applications. We're working on as part of the Trilogy2 that's investigating how to improve the reliability of congested datacenters.
Signposts: Heidi gave an excellent talk about Signpost and the benefits it can offer internet users today (see right). This was one of a set of talks that took place in the Computer Lab, organised by Alan Mycroft, on open software and open hardware with speakers such as Jon 'maddog' Hall of Linux International. There was fairly unanimous agreement that Heidi's slides were better than Anil's.
Multicore: Once the dreaded ICFP deadline was out of the way, Stephen, Leo, Raphael and Anil put their heads together to start architecting the support for parallel multicore support in the OCaml runtime. A key part of the design space is to maintain the sequential performance and simplicity of the existing runtime, but still make it easy to extend shared memory onto different cores. We'll have more details on this shortly when early prototypes are done and some benchmarks run.
Namespaces: Leo's also been extremely busy in the platform mailing list, which has been the location for the discussion of namespaces. A few hundred emails have been exchanged on this topic and Leo has summarised the discussion and made proposals in his blog post about OCaml namespaces. Although this is a complex issue, aspects of namespaces will be important to the work on the OCaml Platform so we look forward to the outcome of these discussions.
Two new people joined the core team at Cambridge: Jeremy Yallop and Philippe Wang! Jeremy has extensive expertise with meta-programming and generic programming, and is initially looking at the camlp4 redesign. Philippe has been taking on the challenge of running OCaml well on restricted embedded systems, which will also have knock-on benefits to x86 compilation with the same optimisations. Xavier Clerc also joined us for a day in advance of his visit in April, with much interest in his Argot project and the upcoming redesign of OCaml.org.
Two new research grants have been awarded that are relevant to the OCaml Labs mission:
- Network-as-a-Service is a 3-year grant to solve pressing problems in "Big Data" processing, and will enable us to continue to develop MirageOS and the use of OCaml and functional programming in this space. We're going to be collaborating with Imperial and Nottingham on this, with the Cambridge efforts led by Andrew Moore, Jon Crowcroft and Anil Madhavapeddy.
- Rigorous Engineering of Mainstream Systems asks how we can use rigorous maths to improve the quality of mainstream computer systems. It is led by Peter Sewell at Cambridge, and most of the tools (including Ott and Lem) are written in OCaml and will benefit from the ongoing work at OCaml Labs.
OPAM: We've been working hard on an OPAM 1.0 release, and Thomas and Anil have been sweeping through the package tree to stabilise the repository via automated builds. We also had a brilliant visit from Roberto Di Cosmo from PPS, who has contributed extensively to the open-source community over the years. He gave a talk on the challenges of handling large-scale versioning of packages from a mathematical perspective (particularly applied to Debian), which is very useful input for the ongoing OPAM work.
Mailing lists: A new firstname.lastname@example.org was set up for those interested in OpenGL and WebGL on OCaml, and discussion so far has covered LabGL on the Raspberry Pi. There are also still plans to begin working groups for build systems and parallelism but will be announced in due course once the preparatory work has been completed.
Real World OCaml: The book is now on alpha3, where Part 1 is nearly complete. New sections on installation and a more expanded prologue have also been included in this version.
Redesign: As part of the redesign work, and to showcase the kind of additional functionality we'd like to create, Amir put together a set of screencasts that talk though a wireframe demo of the new site. These short videos covered elements of design, the new documentation system and an overview of how the continuous integration system would work. You can read more and experience the clickable demo via Amir's blog post.
Systems and compiler projects
Mirage: Anil gave two tech talks about Mirage this month at Citrix and Microsoft Research, as practise talks for ASPLOS 2013. Mirage itself is nearing a release, and Vincent Bernardoff has joined the Citrix engineering team to help drive it to release. He's been primarily focussed on the build frontend (dubbed Mirari) to make Mirage applications easier to compile out-of-the-box.
camlp4 redesign: There has been more discussion about the future of camlp4 and Leo posted another summary on his thoughts for an alternative apporach to quotations.
- An alternative to camlp4 - Part 2 (Feb 5th)
There's a lot of interest in the work we're doing, and the number of collaborative projects is increasing fast.
We held the first monthly meeting in the Computer Lab, where Anil provided
an overview of the research work that OCaml Labs is
starting. An interesting theme of the discussion that followed was
related to undergraduate teaching and how things like the OCaml
Platform and infrastructure would make it easier for
students to get to grips with programming.
For the evening after the meeting, Amir set up an informal OCaml hacking/tutorial session in Cambridge. Around 15 eager people attended the event in Makespace (a community workshop), with most of them being new to the language. Anil introduced Real World OCaml and shared the introductory chapters while Thomas provided help with OPAM. This turned out to be a great test of the installation process for newcomers to OCaml, as well as the book's instructions. A number of issues came to light, partly related to a perfect storm of package issues, which everyone is keen to improve. Despite these problems, attendees were very positive and were keen to see more gatherings like this in future. When Amir asked for feedback, pretty much everyone commented on how great the pizza was.
OCaml Labs also hosted its first visitor this month as Thomas
Gazagnaire, the CTO of OCamlPro, spent three weeks in
Cambridge. Much effort was put into preparing Mirage for release, discussions
about parallelism and the OCaml Platform, and anything where OPAM is a crucial
component. Worth noting is that (at time of writing) the
opam-repository has now
become the overall most forked OCaml project on Github.
The Platform mailing list has also been formed for discussion regarding the OCaml Platform. Anyone interested in the discussions about the platform, which will include development on OPAM, should join this list.
Part of the Platform work involves creating a new
design for OCaml.org, which also
kicked-off this week.
Amir will keep people updated about progress via updates to the OCL website, Infrastructure mailing list and also by posting things to the OCaml.org Github wiki. The current stage of work involves thinking of the types of pages OCaml.org requires, in order to refine the templates we need. As part of this, we also commissioned a new logo for OCaml and although it's still under development, you can see the latest draft on the OCaml.org wiki. Please send any feedback directly to Amir.
The Real World OCaml book website was released as a limited alpha earlier in the month, with the aim of getting early feedback and comments. Each paragraph of the online book has commenting functionality, using Github issues as a backend. This means that each comment made on the book website creates a new issue on Github, which authors/commenters can track and discuss before editing the content. So far there have been over 250 comments on the alpha, with half them being dealt with already.
A new EU project also kicked-off called Trilogy 2, which builds on the award-winning work from the original Trilogy project. OnApp (a member of Trilogy 2), will be providing the cloud Infrastructure for ocaml.org, and Thomas and Anil will be expanding the Mirage project into distributed computing under this umbrella. As befits an EU project, it kicked off with an especially nice dinner at Christ's College...
Mirage: This was formally proposed as an
incubated Xen.org project and the proposal was put forward for
community review. There were many positive
comments on the Xen mailing lists (along the lines of
"Mirage is cool stuff")
and voting is currently underway by eligible members of the Xen community.
Assuming a positive outcome, incubation would give the Mirage project greater
visibility and access to resources. This would accelerate progress towards an
alpha release in Q1/Q2 this year. In
addition to this, a proposal for an
OSCON talk was also submitted and the camera-ready version of the ASPLOS paper is
Illuminate: A related research topic where Mirage could be useful is in embedded systems and the Internet of Things. One specific use case is the Illuminate Project, where Mirage can be used to create appliances running on the ARM microcontrollers alongside an LED lighting network. Such a lighting system is now deployed in large parts of the Computer Laboratory and will form an excellent test-bed to explore these ideas further.
Signpost:: Signpost is also achieving greater outreach with Jon Crowcroft discussing such technologies at a meeting in Dagstul on Decentralized Systems for Privacy Preservation. Cambridge also hosted Eric Schmidt from Google, where he is the Humanitas Visiting Professor in Media for 2013. Eric delivered a talk on the future of conflict, combat and intervention. Anil and Jon got an opportunity to discuss Signposts with him for 20 minutes, which was an interesting clash of opinions (we want decentralised identity, Google want it all to go through them). Either way, we're even more motivated to get the Signpost tech out to the big bad world as soon as possible. Meanwhile, Haris found his identical twin brother in St Johns Masters Lodge...
Several mailing lists are in progress for various community-driven projects.
The first of these is a working group on the future of syntax extensions in
OCaml (wg-camlp4). This group is
chaired by Alain Frisch and Leo White and has
generated a great deal of discussion in the last two weeks. Leo is
summarising his thoughts in a series of blog posts
as he goes. Further working groups on parallelism in OCaml and build systems are under
discussion and will be announced in due course.
As well as all the research and development activity we've also been recruiting. We've had several rounds of interviews and made a number of offers so hopefully we'll be announcing new members of the OCaml Labs team in the coming months. In addition, we'd also like to mention that Leo successfully defended his PhD Thesis in January. Finally, we'd like to welcome a new honorary member of OCaml Labs, Nathan Scott, born on 30th January. Congratulations Dave!
- An alternative to camlp4 - Part 1 (Jan 23rd)
OCaml Labs kicked-off with an internal meeting of the Cambridge-based members, who battled endless snow to make it to the meeting. There are over 20 people involved just within the building and over 30 including those outside the University. We welcomed a few new members, including Leo White (Postdoc), Raphael Proust (PhD student) and Stephen Dolan (PhD student). At this initial gathering Anil talked over some of the projects that were already taking place in the Lab, as well as the new work that would be supported by OCaml Labs.
Significant progress was made on the research side too. Mirage has had a flurry of new releases as we prepare for a first public release, and we're in the final stages of being officially incubated as a xen.org project. Signpost is also taking shape, mainly due to the addition of DNSSEC to the ocaml-dns implementation. There's been industrial interest in the applications of Signpost and the team is pursuing these for more use cases.
We also began work on a new website for the Real World
OCaml. We took inspiration from our friends who wrote
Real World Haskell, and the site will have commenting functionality so that
people can suggest improvements before the book is finalised. As part of this,
we also worked with a design firm to begin creating a new logo for the OCaml
The logo will be placed into the public domain for use by anyone.
OCaml Labs finally opened its doors with announcements from Yaron and Anil! Although much of the remainder of November was spent on administration and wiring up machines for the forthcoming test cluster, we also celebrated the acceptance of a paper on Mirage to ASPLOS 2013.
We also had a very productive visit from OCamlPro. Fabrice, Thomas and Pierre came over to discuss the new OPAM package manager and the plans for building an OCaml Platform in 2013. This was in preparation for the subsequent Consortium meeting of the industrial board of OCaml, where Anil was able to present (and get approved) an overview of what ocaml.org would become. You can see the slides of his talk online. An interesting thing to note is just how broad the set of OCaml language users are: right the way from formal methods, to systems projects, and even web developers.
Since the Consortium meeting, the infrastructure behind ocaml.org is being built out and there's already been helpful input via the infrastructure mailing list. A continuous build system has been put together for internal testing, with support from Citrix, and OPAM itself continues to mature and grow in popularity.