OCaml Hacking Day in Chennai!by Isabella Leandersson on Nov 9th, 2023
It is a truth universally acknowledged, that a programmer in possession of a free Saturday afternoon must be in want of a good old OCaml hacking session. To address this pressing need, we recently hosted another OCaml Hacking Day event – this time at our Tarides India office in Chennai. We had a total of twelve hackers with varying levels of experience participating. Everyone gathered for talks, snacks, mingling, and most excitingly some hands-on hacking!
People began to arrive at the office at 14.30, getting themselves situated in the dining room (probably admiring all the beautiful plants on the way). To kick things off, KC Sivaramakrishnan gave a talk welcoming the participants and introducing them to OCaml and Tarides.
For the uninitiated: we’re a tech company of over 70 people from across the world, in countries including Denmark, Spain, USA, Australia, and Finland. This is in addition to our three main offices in France, India, and the UK. KC further explained how we focus on building robust and high-performing systems in OCaml. In a nutshell, this includes working on big features like OCaml Multicore; the OCaml Platform with build, package, editor, and documentation tooling; cutting-edge technologies like Mirage and SpaceOS; and finally on community-focused projects including OCaml.org and the maintenance of essential OCaml libraries.
With introductions out of the way, KC moved on to the heart of what it means to contribute to open-source projects. He likened it to maintaining a public garden, a useful simile that emphasises the key aspects that make open-source ecosystems successful. In open-source, you need to work collaboratively, balancing the needs and wants of the many with your own interests. Open-source community projects are designed to benefit not just the contributors but also others in the community who may not be part of that particular effort. Projects also (hopefully) outlast just one contributor: as more people join and care about something, it takes on a life of its own. Finally, open-source community projects require that participants allot significant amounts of time toward maintenance.
Public gardens also require a sense of community planning and collective responsibility. No one person can (hopefully) put down a pool or an ice rink in a public park just because they want to, it has to benefit the entire community that uses it. For public gardens to retain their value, a group of people have to take on necessary but unglamorous tasks: weed pulling, leaf raking, bulb planting, and so on. A garden that’s properly maintained and cared for can bring value to an entire community for multiple generations.
This idea is particularly impactful for people who are used to working on code in individual projects that have distinct ‘beginnings’ and ‘ends’ – for example university students who work on things in class. The public garden simile helps us understand the traits that define open-source systems and make them beneficial.
Lastly, KC encouraged everyone to get stuck into some hacking – inspiring several participants to make their first open-source contribution during the day!
To make things as easy as possible for the participants, the engineers at the Chennai office made a great list of projects suitable for different experience levels. Each project had a description, a difficulty level from one to five, and any extra references that could be useful. Everyone would pick a project and get started, with Sudha, Shakthi, and KC on standby to help out if anyone got stuck.
An impressive amount of contributions came out of the Hacking Day, with several pull requests created by the end of the session:
- Multicore Tutorial on OCaml Effects: There were several fixes to the Multicore tutorials on effects, updating links and information to accurately reflect current information after the 5.1.0 update.
- Multicore Tutorial for parallel programming: This PR adds a new section describing how to use Olly for instrumentation if the user is running OCaml version 5.0 or later.
- Updated OCaml 5 readme: An update to the OCaml 5 readme to install OCaml 5.1.0.
- Runtime Event Tools: Added more information about GC-Stats to the Olly Manual Page.
- TSan: One participant used TSan to identify some races in Saturn’s test-suite!
- OCaml Trunk: This PR adds a
noallocannotation to a function. This optimisation makes the function run faster and will help in circumstances where it is being called many times in one program.
- Domainslib: Adds parallel versions of commonly used Array iterators.
We couldn’t let our visitors leave hungry or empty-handed! There was a delicious assortment of samosas in the afternoon and of course pizzas in the evening. Having food together was a great opportunity for people to have discussions and share their experiences even after the main hacking was done.
We also gave attendants an assortment of swag to take home – including a t-shirt, custom keyrings, stickers, and flyers.
It was great to see such interest in OCaml and open-source programming – hopefully it has given everyone a taste for more. We look forward to seeing more people attend our Hacking Days in the future, so keep an eye out for future announcements. You should follow us on X (formerly known as Twitter) and LinkedIN to stay up-to-date with what we’re up to as well as when we host events.