Create a gist now

Instantly share code, notes, and snippets.

Scheduling for next week

Several visitors are arriving at the Computer Lab during the week of 19th May, as well as an OCaml Labs group meeting, so planning the agendas here. Talks are in bold.

Monday 19th May 2014

  • 1700: Andy Ray and Martyn Riley arriving from Edinburgh.
  • 1730: Flying Pig (Rolf, JonC, Andy, Martyn, Anil, ++)
  • midnight: all OCaml 2014 speaking submissions to go in.

Tuesday 20th May 2014

  • 0930: Anil/Leo/Jeremy/ThomasG/Amir prep
  • 1000: Anil/Leo/Stephen/Fred: multicore+implicits prep
  • 1100: Andy Ray / Anil to meet Andrew Moore in his office

See: http://ujamjar.github.io/hardcaml/ for the interactive tutorial.

  • 1200: Andy Ray / Robert Watson / Anil lunch?
  • 1300: SRG talklet by Andy Ray on HardCaml (FW11)
  • 1400-1500: HardCaml session in FN05 (Andy/Martyn/Anil/Nik Sultana/Hwanju Kim/Andrew Moore/Simon Moore invited)
  • 1500: HannesM/PeterS/AndyRay/Anil about hardware TLS in FW16?
  • 1600: Thomas Leonard / Jeremy / Anil / Dsheets to talk about MiniOS/Ctypes?
  • 1830: Tour of Christ's by Ian Leslie (+visitors + Anil/Jon)
  • 1900: Invitational dinner at Christ's College (OCR)

Wednesday 21st May 2014

Yaron here all day this day only.

  • 0930-1000: Yaron/Anil (FW16)
  • 1000-1030: OCaml: Yaron/Jeremy/Leo/Anil (FN05) (agenda: multicore, inlining)
  • 1030-1130: Platform: Andy/Yaron/Amir/DSheets/ThomasG/Jeremy/Leo/Anil (FN05) (agenda: Jenga, Iron, LTS Core, CI)
  • 1130-1200: Irminsule: Andy/Yaron/ThomasG/Andy (SRG meeting room) (FN05) (agenda: Iron, RWO/IOCaml teaching storage)
  • 1230-1330: Yaron/Anil/Mark/Nick/Jeremie lunch at wolfson if time permits or food delivery.
  • 1400-1500: Yaron Minsky Wednesday seminar in LT1 http://talks.cam.ac.uk/talk/index/51144

This talk will describe the development of a library called Incremental, a library for creating computations that are structured as dynamic dependency graphs, where only the relevant parts of the graph need to be evaluated in order to update to changes to input values. This library is based on Umut Acar et al’s work on self-adjusting computation. story about technology transfer. Building an efficient and usable library of this kind is surprisingly tricky, and involves addressing many technical issues that were not contemplated by the original academic work. We’ll discuss these technical issues in some detail, and consider what they suggest about the difference in interests and goals between the academic and industrial work.

  • 1530-1730: OCaml Labs meeting (FW26)

Agenda

  • Overview of activities, and Platform (20 min) -- Anil Madhavapeddy
  • Ctypes (15+5min) - Jeremy Yallop

Ctypes now includes a new backend that statically generates the C and OCaml code for binding to libraries. Jeremy will show what this looks like from a user perspective and how it translates into additional type safety, simpler linking and more efficient execution.

  • Multicore Runtime (15+5min) - Stephen Dolan and Leo White

Lack of support for shared-memory parallelism is often cited as a short-coming of OCaml. This talk will describe the design of an OCaml runtime with support for parallelism, focusing on the garbage collector for this runtime.

  • Modular Implicits (15+5min) - Leo White and Frederic Bour

Taking inspiration from "Modular Type-classes" and Scala's implicits, this talk will outline the design and implementation of "modular implicits". Modular implicits allow functions to take implicit module arguments which will be filled-in by the compiler by searching the environment for a module with the appropriate type. This enables ad-hoc polymorphism in a very similar way to Haskell's type classes.

  • Jenga (15+5min) - Nick Chapman and Mark Shinwell

A tour through the distributed build that assembles Jane Street's vast codebase -- and is available as open-source now in an increasibly usable external form.

Thursday 22nd May 2014

Cloud Law meeting in morning is in London and will be attended by Amir/JonC, Anil to skip

  • 1000: Jeremy/Andy on IOCaml/teaching?
  • 1100: David Greaves to meet Andy Ray/Martyn Riley to discuss HardCaml (David's office in SRG corridor)
  • 1300: Andy/Martyn to leave for train station
  • 1500-1600: Thomas Gazagnaire SRG seminar on Irminule in SS03 http://talks.cam.ac.uk/talk/index/49903

Irminsule is a new database designed specifically to run in distributed, decentralised settings. It builds on the principles of Git to give the user the same primitives as distributed version control systems, exposing pull, merge and push operations with other replicas of the database. Conflicts are resolved at the application level via merge functions defined specifically for the usecase at hand, and consistency models can be tailored to reduce the conventional overheads of general purpose databases.

Friday 23rd May 2014

Higher-kinded polymorphism —i.e. abstraction over type constructors— is an essential component of many functional programming techniques such as monads, folds, and embedded DSLs. ML-family languages typically support a form of abstraction over type constructors using functors, but the separation between the core language and the module language leads to awkwardness as functors proliferate. We show how to express higher-kinded polymorphism in OCaml without functors, using an abstract type app to represent type application, and opaque brands to denote abstractable type constructors. We demonstrate the flexibility of our approach by using it to translate a variety of standard higher-kinded programs into functor-free OCaml code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment