The goal of OCaml Labs is to push OCaml and functional programming forward as a platform, making it a more effective tool for current users (including significant industrial users) and at the same time growing the appeal of the language, broadening its applicability and popularity by a combination of technological advancements, creation of community infrastructure, and public communications.
This effort is run across multiple groups in the Computer Laboratory, primarily the SRG and PLS, and including collaborators from the Security, CompArch and DTG groups. We would like to especially thank our primary funder, Jane Street, for their generous support.
Stephen Dolan recently presented crowbar at the 2017 OCaml Workshop. Crowbar bridges a gap between property-based testing frameworks and instrumentation-based automated testing techniques. Tests written in Crowbar can be executed by the wildly popular and successful American Fuzzy Lop fuzzer. (For more on testing OCaml code with AFL, see the afl-persistent README, Crowbar’s examples, or a user’s DHCP library tests.)
There are various Continuous Integration (CI) systems monitoring OCaml. The most publicly visible of these are the two which run on our GitHub repository: Travis, which tests GNU/Linux in 32-bit and 64-bit configurations and also performs a few sanity checks on pull requests, and AppVeyor which tests some of the native Windows ports.
David Allsopp has previously contributed patches for native Windows support to Merlin, and after the release of Merlin 3.0.0 back in July, he’s been working with Frédéric Bour to port the new features to Windows.
Displaying his own true sense of style, Romain Calascibetta added an incredibly detailed (and hilariously funny) PR for integrating his new Git implementation into
ocaml-git - using the new implementation!
The OCaml community has helped uncover a serious microcode defect on Intel Skylake and Kaby Lake processors with hyper-threading enabled. Debian have issued a security advisory encouraging users of systems with the affected processors to apply the BIOS/UEFI update, or disable hyper-threading.
Jeremy Yallop has submitted an extensive PR to add support for unsigned 32-bit and 64-bit integers. This feature is frequently requested, and the PR details the motivation behind the addition of primitive types, standard library modules, syntax for expressions and patterns, as well as suggesting ideas for future enhancement.