# Interesting non-OCaml tech articles

**URL:** <https://discuss.ocaml.org/t/interesting-non-ocaml-tech-articles/2438>\
**Category:** Community\
**Tags:** news, research, blog\
**Created:** [August 14, 2018, 12:58pm UTC](https://discuss.ocaml.org/t/interesting-non-ocaml-tech-articles/2438 "2018-08-14T12:58:02Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![bluddy](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/bluddy/32/104_2.png) [@bluddy](https://discuss.ocaml.org/u/bluddy)\
**Post date:** [August 14, 2018, 12:58pm UTC](https://discuss.ocaml.org/t/interesting-non-ocaml-tech-articles/2438/1 "2018-08-14T12:58:02Z")

</div>

As a counterpart to [Interesting OCaml Articles](https://discuss.ocaml.org/t/interesting-ocaml-articles/1867), I’d like to suggest a thread for interesting discussions/articles/research not directly related to OCaml. Feel free to add on a link to something CS or tech-related that you find interesting. We can discuss it further either here or on discord’s #articles channel.

---

<div class="post-metadata">

**Author:** ![bluddy](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/bluddy/32/104_2.png) [@bluddy](https://discuss.ocaml.org/u/bluddy)\
**Post date:** [August 14, 2018, 12:58pm UTC](https://discuss.ocaml.org/t/interesting-non-ocaml-tech-articles/2438/2 "2018-08-14T12:58:33Z")

</div>

Here’s one that sparked a discussion on #articles: [C is not a Low Level Language](https://queue.acm.org/detail.cfm?id=3212479)

---

<div class="post-metadata">

**Author:** ![gasche](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/gasche/32/4_2.png) [@gasche](https://discuss.ocaml.org/u/gasche)\
**Post date:** [August 5, 2023, 8:40am UTC](https://discuss.ocaml.org/t/interesting-non-ocaml-tech-articles/2438/3 "2023-08-05T08:40:51Z")

</div>

I read a nice blog post today about [Using UNIX semaphores to coordinate CPU usage between cabal and ghc](https://well-typed.com/blog/2023/08/reducing-haskell-parallel-build-times/). This describes a haskell-land solution of the problem of having a package manager and a build system that both can run things in parallel, but don’t know how to both use CPU cores without over-saturating system resources. A similar solution could be adapted to synchronize `opam` and build systems (in particular `dune`) to improve parallelism. In the future this could also be used between the build system and the compiler, if the compiler ever decided to run some phases in parallel – maybe linking?

---

<div class="post-metadata">

**Author:** ![dbuenzli](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/dbuenzli/32/18_2.png) [@dbuenzli](https://discuss.ocaml.org/u/dbuenzli)\
**Post date:** [August 5, 2023, 9:08am UTC](https://discuss.ocaml.org/t/interesting-non-ocaml-tech-articles/2438/4 "2023-08-05T09:08:01Z")

</div>

Looks like a reimplementation of `make`’s [jobserver](https://www.gnu.org/software/make/manual/html_node/Job-Slots.html) protocol to me.

---

<div class="post-metadata">

**Author:** ![gasche](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/gasche/32/4_2.png) [@gasche](https://discuss.ocaml.org/u/gasche)\
**Post date:** [August 5, 2023, 8:53pm UTC](https://discuss.ocaml.org/t/interesting-non-ocaml-tech-articles/2438/5 "2023-08-05T20:53:14Z")

</div>

So I asked and [they compare to make jobserver](https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0540-jsem.rst#53other-jobserver-protocols), and in fact they link to [Teach dune make's jobserver API by rgrinberg · Pull Request #4331 · ocaml/dune · GitHub](https://github.com/ocaml/dune/pull/4331) which is a discussion by Dune developers to implement the Make jobserver protocol, where someone (presumably Jérémie) points out that the protocol has some issues that were found problematic when implementing it for Jenga.

(I am impresseed by the the quality of the ghc proposal/RFC that describes this change, [https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0540-jsem.rst#53other-jobserver-protocols](https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0540-jsem.rst#53other-jobserver-protocols) ; in particular the related work / “alternatives” section is surprisingly detailed. Usually this is the part that people are the less excited about writing and they do a so-so job at it.)

---

<div class="post-metadata">

**Author:** ![dbuenzli](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/dbuenzli/32/18_2.png) [@dbuenzli](https://discuss.ocaml.org/u/dbuenzli)\
**Post date:** [August 5, 2023, 11:14pm UTC](https://discuss.ocaml.org/t/interesting-non-ocaml-tech-articles/2438/6 "2023-08-05T23:14:59Z")

</div>

What I meant is: nothing new under the sun, age-old techniques. Maybe better executed but nothing new and unfortunately with the closed linguistic world mentality.

To me the interesting question is rather, why do we need to care about these things in user space ? Wasn’t the OS abstraction precisely supposed to be in charge of handling this ?

---

<div class="post-metadata">

**Author:** ![bluddy](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/bluddy/32/104_2.png) [@bluddy](https://discuss.ocaml.org/u/bluddy)\
**Post date:** [August 8, 2023, 12:43pm UTC](https://discuss.ocaml.org/t/interesting-non-ocaml-tech-articles/2438/7 "2023-08-08T12:43:16Z")

</div>

> **[Python moves to remove the GIL and boost concurrency](https://www.infoworld.com/article/3704248/python-moves-to-remove-the-gil-and-boost-concurrency.html)**
>
> Formal plans for a Python that supports true parallelism are finally on the table. Here’s how a GIL-free Python will finally come together.
