This blog is to write about an internship on an open-source OCaml project having to do with the language’s PPX library. The internship is funded and organized by Outreachy, and will take place remotely during the 2021/2022 Winter.
What is OCaml?
OCaml is an open source, statically typed, functional programming language. To understand what that means and why it's important, read the short Why OCaml? section of this link. OCaml's open source community has a friendly mix of hobbyists, academics and industry users, and uses Discord and a Discuss board to share knowledge.
What is Outreachy?
Outreachy is a remote internship program that connects applications to open source projects looking for interns from backgrounds underrepresented in tech. It runs 2 internship periods a year, and has zero initial requirements for applicants. It has a multi-stage process with written applications and a code contribution period, where applicants are required to resolve small issues for the participating open source projects. It's a great opportunity for anyone looking for a start in programming or open source software! It's especially good for people in non-Western countries who have few tech industry opportunities in their home countries.
What is this PPX project exactly?
This internship involves improving the OCaml PPX ecosystem. In a first instance, this will be done by consolidating standard derivers to a single location in the
ocaml-ppx project, and will require unifying their implementations under one shared syntax and configuration based on the
Deriving module of
ppxlib. Here is a link to this blog's first post explaining some of these terms in more detail.
Where can I check out the project?
This project covers different things over multiple repositories by different owners, so the best way to follow the progress of the project is through this blog. The OCaml PPX GitHub project contains the most important repos for this project including
and this repo for standard derivers. You can make sure to follow my GitHub account as well.