[ANN] the OCaml Software Foundation

The first logo you point to is the logo of the “OCaml Software Foundation” (OCSF; as specific non-profit with a mission, etc.); the second logo was designed to be the logo of the OCaml language (and, by extension, the OCaml community); so no, they do not represent the same thing, and one is not going to replace the other. People should use the OCSF logo when they want to support or acknowledge the Foundation specifically, but in most situations they probably mean to use the OCaml logo to publicize the language and community at large.

(Thanks for the broken links notice! I just fixed it.)

Have you seen the new github sponsor feature https://help.github.com/en/github/supporting-the-open-source-community-with-github-sponsors/about-github-sponsors I think it helps out with administrative donations. I have seen a limited set of projects using this already as a preview. Doesn’t that solve zero-cost accounting for the masses (small donators on per project basis )?

The legal setup of the foundation (which I was not involved with) is such that we have lawyer-type people make decisions about how we are allowed to spend and receive money. (I think the general reasoning is that we want to do things in ways that let companies to request tax breaks when they give us money, and that unless lawyers are involved this is easy to mess up and come back to bite you later.) As a consequence, we cannot “just” use various funding schemes that are easy for private developers to setup (“use Patreon”, “sign up for Github Sponsors”, etc.); we have to ask lawyers and be patient. (And of course most lawyers are inexperienced with these brand new crowdfunding schemes, so this takes more time than you would think.)

2 Likes

Hi everyone,

A small report on the actions that we launched since my initial posting.

(There was also some progress on the “enabling individual donations” front, maybe something will be possible in the next few months. Don’t start holding your breath yet.)

  • We are funding the “Leafs” research project in Lisbon to develop teaching material for theoretical-computer-science courses (automata and stuff) in OCaml, with interactive visualization components, some of which will hopefully be integrated in the Learn-OCaml platform over the course of 2020/2021.
  • We provide funding for the Gallium/Cambium research team at INRIA Paris (France), an active place for OCaml-related fundamental research (some of the team members are also very active on the implementation front, for example Xavier Leroy, Damien Doligez, Florian @octachron Angeletti, and Sébastien Hinderer).
  • We sponsor the SWERC programming contest for 2019-2020, and in return the contest added OCaml to the list of available languages. Most participants to these competitive-programming events use C++, but we talked to past and active participants who said they would be interested in using OCaml on some problems with more symbolic computation.
  • Over the course of the OCaml 4.10 release process, we are funding work by @kit-ty-kate to have a wide look at the ecosystem and improve compatibility with the upcoming release. (I believe that the upstream PR #9176 is a first result of this effort.)
  • In reaction to the Discourse thread Suggestions for OCaml documentation, we are planning to fund further work by @sanette to experiment with the HTML rendering of the OCaml manual, in coordination with @octachron to try to upstream improvements when reasonably possible.
  • We got in touch with the Owl project to sponsor a development sprint in 2020.
30 Likes

Could you please enable HTTPS on this site?

If I click https://ocaml-sf.github.io/ it redirects to the plain http://ocaml-sf.org

If I change it to https://ocaml-sf.org manually it complains about the wrong certificate (it belongs to the ocaml-sf.github.io domain instead).

1 Like

The foundation website seems dead now. Fastly says:

Fastly error: unknown domain: ocaml-sf.org. Please check that this domain has been added to a service.

Details: cache-hel6832-HEL

I can access the website, and so does the first “is my website down?” service I could find on the web, but my browser does report an HTTPS issue. I need to fix this (or convince one of my colleagues to fix it for me), but I have other fires to deal with before that.

Certificate seems OK now on https://ocaml-sf.org/

Redirect from https://ocaml-sf.github.io/ still points to HTTP-only http://ocaml-sf.org/ though.

We were all very busy during the last semester, and have been mostly quiet on the foundation activities, but of course our actions were running in the background. Some highlights:

  • Kate @kit-ty-kate Deplaix has worked on opam-repository QA for the OCaml 4.11 release, and the work and results are just as superb as for 4.10. We will fund Kate to work again on the upcoming 4.12 release.

  • We are funding ongoing maintenance work on ocaml-rs (a port of the OCaml FFI library from C to Rust) by its author and maintainer, Zach @zshipko Shipko. Zach did a big round of cleanup changes this summer, improving the overall design of the library and completing its feature set.

  • We are funding @JohnWhitington (the author of OCaml from the Very Beginning) to do some technical writing work for OCaml documentation. His contributions so far have been very diverse, from a script to harmonize the documentation of List and ListLabels (and Array and ArrayLabels, etc.) in the standard library, to small cleanups and improvement to ocaml.org web pages. One focus of his work is the upcoming documentation page “Up and running with OCaml”, taking complete newcomers through the basic setup, using the toplevel and building and running a Hello World. (ocaml.org#1165, rendered current state)

  • Two Outreachy internships were supervised this summer, focusing on the compiler codebase. Florian @Octachron Angeletti (INRIA) supervised an intern on adding a JSON format for some compiler messages (we expect PRs to be submitted soon). Vincent @vlaviron Laviron and Guillaume @zozozo Bury (OCamlPro) supervised an intern on reducing mutable state in the internal implementation.

  • Inspired by this Discuss thread, we are funding experimental work by @sanette on the HTML rendering of the OCaml manual. This work is in the process of being reviewed for upstreaming in the OCaml compiler distribution. (#9755.) This is a better end-result than I had initially expected.

(We also had a couple non-highlights. For example, we funded a sprint (physical development meeting) for the Owl contributors, with Marcello @mseri Seri doing all the organization work; it was planned for the end of March, and had to be postponed due to the pandemic.)

25 Likes

By the way, since GitHub added Sponsors feature, they also added support for a custom foundations as well. You can read more about that here:

A good example of such setup is Zig language - they have their own Zig Software Foundation and setup a dedicated GitHub Sponsors page.

Also currently the page “Becoming a sponsor” (linked from the title post) doesn’t work: http://ocaml-sf.org/becoming-a-sponsor.html

2 Likes

I agree with the focus on teaching resources.

I also think there is some low hanging fruit in pursuing wider adoption by computer science research labs as well as research labs in other sciences. There are already success stories and there isn’t the usual commercial inertia against adopting anything outside of the mainstream. Researchers are under more pressure to squeeze out productivity from small budgets, so ocaml could benefit them.

1 Like

In this process, you probably did an evaluation of the current state of the ecosystem. Can you make a public page on GitHub or the foundation website, and update your view of ecosystem strengths and gaps periodically? I think architects debating ocaml would find such content very helpful, if they can find it from ocaml.org

Unfortunately we don’t currently have something as structured as you are suggesting (we probably should!). We’ve been mostly looking at specific pieces so far (as in: “well obviously Lwt is important, is there something we should do there?”.)

@rizo, who maintains the Awesome OCaml resouce list, started an effort similar to what you describe a few years ago, under the name State of the OCaml Ecosystem. “Awesome” is a not-so-curated list of things out there (in a sense it’s similar to Maxence Guesdon’s now-defunct “OCaml Hump”), while “State” tried to do a bit more of a critical assessment of the maturity of the OCaml ecosystem for important application domains. Unfortunately “State” is not getting as many contributions as “Awesome”, because it’s harder and, understandbly, less motivating.

(Recently @K_N wondered, on the Foundation’s behalf, what are the typical application domains that newcomers would expect our ecosystem to provide, and are currently missing. One way to get data on this is to look at what some other languages (Python, Go) which use a batteries-included approach are providing. If some people around here are interested in helping identify those weak points, we can always use help! The Executive Board, which is doing the heavy work for the Foundation, is staffed by volunteers contributing part-time.)

3 Likes

I will contribute to state of ecosystem, thanks for pointing it out. Should post a call for updates to this forum, every four months.

Regarding the “State of OCaml Ecosystem” it is quite related to the What libraries are missing? discussion here and the “Help Needed” page in OCamlverse.

1 Like

Since “state of the ecosystem” has been initiated in the past, the main piece missing for me is to see github table of companies and organizations listing what libraries they use, so that outsiders to ocaml can quickly understand what libraries they might end up using when shopping for languages. the lowest friction way that I can think of collecting this information is to have each github org create a small single file repo called “dune-stack-share” and have them fill in the dune file with a union of the dependencies their projects use.

While I like the idea, I don’t think that a simple dune file would be interesting. I have currently 242 packages installed at work, many of them being used directly. Simply listing that without providing any explanation is noisy and hard to navigate.

2 Likes

I am trying to set a low barrier, so that people reluctant to share or who don’t want to produce a separate text file might still participate. Could be multiple dune files like “base”, “library”, “service”, “cli”, “client”

Will mull over how to group deps to provide more useful information


If we come up with an idea that will be useful for sharing ocaml library stacks, we can use a custom Sourcegraph instance that indexes github, gitlab and other repos, to make the distributed dataset searchable.

Looks like creating a thread on this discourse to share stacks every six months or year will work well. It’s getting great responses currently. So, using github to share is not necessary