We are pleased to announce that the new and improved OCaml Labs website is here!
This wiki will remain active while we transition our content to ocamllabs.io, but it will be retired eventually. The new site will have all the recent news and exciting developments from OCaml Labs together with links to related projects and people, so it will be easier than ever to keep up to date with everything we are doing.
We hope you enjoy the new site!
We have been refreshing the OCaml GitHub organisation in an effort to better manage the growing number of projects integral to the core OCaml distribution. We are happy to announce that in recognition of its importance to the OCaml language and ecosystem as a whole, Merlin has been promoted as a headline project of OCaml.
Merlin is the defacto editor tool for OCaml, with support for Vim, Emacs, Acme, Atom, Spacemacs, VSCode and Sublime Text. It is maintained by Frédéric Bour and Thomas Refis, and has contributions from over 30 individuals. We hope that Merlin's inclusion in the OCaml core organisation encourages further support and contribution from the community - join the discussion on the Merlin mailing list and get up to date with the current state and future plans using the project roadmap.
The OCaml AFL project started back at the first MirageOS hackathon in Marrakech earlier this year by Mindy Preston, and the patch provided by Stephen Dolan adds support to
ocamlopt for generating afl compatible instrumentation and minimal runtime support to communicate with the fuzzer.
We need more people to fuzz OCaml programs and highlight/fix the subsequent bugs. It's a great project to get started with, and Mindy Preston explains how to fuzz a program here
We are always excited to host interns and visitors to the lab, and we have some new and familiar faces with us this term.
Olivier Nicole: After a very successful few months in the lab over the summer, and providing invaluable help at OCaml Workshop and ICFP, Olivier is back in the lab to continue work on his Macros implementation.
Maxime Lesourd: Maxime finished his Masters in Theoretical Computer Science at ENS de Lyon, and is here for 5 months to continue the previous work started by Armael on the compilation of effects in OCaml using a type directed selective CPS transform.
Takayuki Imada: Takayuki Imada is a researcher at Hitachi Ltd. Japan working on server virtualization hypervisor work. He has interests in Unikernel technology and IoT-related computing frameworks (Fog/edge computing) and is working on improving network performance on MirageOS.
OCaml Labs held the fifteenth compiler hack event on 9th November at Pembroke College with over 20 people in attendance. We opened it up to MirageOS users and developers ahead of the upcoming 3.0 release and welcomed a varied group of students and developers from a huge range of organisations. See the summaries and attendance list here.
The newest version of OCaml 4.04.0 is here!
A major addition to this release is Spacetime: a new memory profiler. It records how your program executes so it can reliably tell you the full stack backtrace at every point in the program that caused an allocation.
ICFP 2016 is over!
OCaml Labs participated heavily in the conference this year, with 7 presentations at the OCaml Workshop, 7 talks across the co-located workshops, and the OCaml Tutorial afternoon. Thank you to all of our student interns who volunteered at the conference, liveblogged and presented their work!
We've created a liveblog unikernel to keep track of the proceedings, at icfp2016.mirage.io. This is powered by the Canopy system built by Enguerrand Decorne during his internship at OCaml Labs. It uses much of the software pieces built for MirageOS, including Irmin to track the Git data and live update the blog in response to pushes.
If you are at ICFP this week and would like to contribute to the liveblog, your contributions would be most welcome! Just send in a pull request to the Git repository at github.com/ocamllabs/icfp2016-blog or get in touch with a member of OCL to give you direct write access (e.g. ping @avsm on Twitter).
KC was invited to speak at the most recent London Facebook Faculty Summit alongside other faculty guests, Facebook engineers and researchers to discuss recent developments in ML and programming languages.
Lightning talks from guests and hosts kickstarted the day, followed by scheduled talks including Media:Effective_Parallelism_with_Reagents.pdf where KC presented the latest progress in the OCaml Multicore project. Algebraic effects allow cooperative concurrency whilst the Reagents library presents composable lock-free synchronisation using a compare-and-swap method.
This summer we hosted the first International Summer School for Metaprogramming at Robinson College, Cambridge. The event was a huge success and it would not have been possible without the generous financial support from our industrial parters: Facebook, Microsoft, Oracle and OCaml Labs. We were fortunate to have an overwhelming number of people register interest, and we welcomed students and speakers from 12 different countries, all with varying expertise and experience in the metaprogramming field. The goal of the school was to present recent research and development in the relatively modest field and we hoped to encourage discussion and collaboration amongst a diverse group of users and researchers.
Our first Cambridge-based MirageOS hackathon took place last week - and what a fantastic day it was! The torrential rain may have halted our punting plans, but it didn't stop progress in the Old Library! Darwin College was a fantastic venue, complete with private islands linked by picturesque wooden bridges and an unwavering wifi connection.
Check out the post for more details!
Functional Works hosted their most recent LDN Functionals meetup #7 at Jane Street London on June 14th, and we spent the evening watching some great talks from people representing Facebook, Docker and Jane Street, and chatting with a full house of functional programmers from all backgrounds.
The event was a sell out (possibly in part due to the amazing view from the London office!) thanks to the excellent talks from Sebastian Funk on "Why Functional Programming Doesn't Matter", Josh Watzman from Facebook's Hack team talking about parallelising the Hack typechecker, and Anil representing Docker by delving into the OCaml insides of Docker for Mac and Windows.
You can see the full list of changes here, but the highlights include:
- Support for OCaml 4.03 and 4.02
- OCaml frontend patches rewritten from scratch
- Custom preprocessor plugin support (currently used in the Reason project)
Spring is an exciting time of year in the lab as we traditionally host a lot of visitors, hold interesting events, and it provides a great opportunity to get collaborators to meet and discuss their ideas and project plans.
This week marked the start of our steady stream of visitors to the lab, and it was great to welcome both new and well-known faces to Cambridge. It's been interesting introducing new interns to the existing group, and watching ideas develop and consolidate over time. It's been a busy few weeks of new projects starting, new releases and updates to existing infrastructure, and our 13th compiler hacking event at the Old Library in Pembroke College provided the perfect venue and opportunity to discuss these ideas.
Jeremy Yallop and Ohad Kammar are hosting a summer school on metaprogramming this year, at Robinson College, Cambridge. There are 7 great lecturers scheduled to talk about staged and generic programming, including Philip Wadler from the University of Edinburgh, Simon Peyton Jones from MSR, and Oleg Kiselyov from Tohoku University.
Metaprogramming techniques treat program fragments as values to be manipulated, and the summer school seeks to explore state-of-the-art in this approach and its wider application, covering both theory and practice.
The summer school runs from 8-12 August 2016, and will be held at Robinson College. More details, including registration, costs and timetable here.
Besides several new features such as support for asynchronous foreign function calls and improved cross compilation support, this release introduces a number of backwards-incompatible changes, which are described below. If your code is available on OPAM and is affected by these changes then you should have received a pull request with a fix. If you have questions about how to update your code, please feel free to post to the mailing list.
I've been enjoying working with Reason, and looking at ways to combine ARM, Reason and Docker. Check out this tutorial on how to build Reason apps for an ARM target using the Docker for Mac beta program. Reason is packaged as a Docker image, so local installation is unnecessary, and Docker's multiarch support means no need for cross-compilation - what a breeze!