Jan Midtgaard
janmidtgaard.bsky.social
Jan Midtgaard
@janmidtgaard.bsky.social
Recovering academic. Occasionally hacks OCaml and property-based testing, manufacturing bad luck on an industrial scale.

Mastodon account: https://types.pl/@jmid
Reposted by Jan Midtgaard
I think a lot about what Carl Sagan said in one of his final interviews.
May 4, 2025 at 6:21 AM
Reposted by Jan Midtgaard
A gem from Stephen Dolan, which proposes replacing the "generational hypothesis" that drives the design of generational GCs with a notion of lifetime dispersion as measured by the gini coefficient. Nice to see economics playing a role here!

dl.acm.org/doi/pdf/10.1...
June 24, 2025 at 8:57 AM
Last night it was announced that our TACAS-paper 'Dynamic Verification of OCaml Software with Gospel and Ortac/QCheck-STM' co-authored with Nikolaus Huber, Naomi Spargo, Nicolas Osborne, and Samuel Hym won the 2025 @etapsconf.bsky.social's Best Tool Paper Award 🎉

#testing #pbt #award
May 8, 2025 at 8:38 AM
Reposted by Jan Midtgaard
There are people I know in the national security community who are terrified that the US government is sleepwalking into a 9/11-level catastrophe. Focusing finite resources on nonsense like this instead of credible threats -- that is the reason they're so worried. www.wsj.com/world/greenl...
Exclusive | U.S. Orders Intelligence Agencies to Step Up Spying on Greenland
The push underscores the seriousness of President Trump’s intent to acquire the island from Denmark.
www.wsj.com
May 7, 2025 at 12:13 AM
Reposted by Jan Midtgaard
Oooh, MirageOS+unikraft PR has appeared from @tarides.com, which should allow much easier deployment of OCaml code to the @unikraft.cloud ! github.com/ocaml/opam-r...
Publish OCaml/Unikraft packages v1.0.0 by shym · Pull Request #27856 · ocaml/opam-repository
OCaml/Unikraft: an OCaml cross compiler to Unikraft backends OCaml/Unikraft is structured into many packages to allow users to build only what they need. Packages use one of two version numbers: 0...
github.com
May 6, 2025 at 9:22 PM
Reposted by Jan Midtgaard
A blogpost I wrote on elm-test's Test.Distribution - testing whether your fuzzers generate interesting cases often enough!

martin.janiczek.cz/2025/05/01/e...
Elm test distributions
…in which I’ll tell you how you can make sure your property based tests are testing the interesting cases.
martin.janiczek.cz
May 1, 2025 at 1:10 PM
Reposted by Jan Midtgaard
This video was posted on Twitter by the official account of the People's Republic of China's embassy in the United States.

The Chinese Communist Party is lecturing the US Republican President by using a Reagan speech on the importance of free trade. We are really living in the Weird timeline.
April 7, 2025 at 8:06 PM
Reposted by Jan Midtgaard
👀 Oleg Kiselyov's compilers course in OCaml 👀

okmij.org/ftp/tagless-...
Compiler
The materials for the course on compilers: built incrementally and fully in tagless-final style
okmij.org
April 5, 2025 at 6:14 AM
...and the award for best exception name showing up in an opam-repo CI run goes to... 🏆😄
April 4, 2025 at 8:30 AM
Reposted by Jan Midtgaard
≪We estimate the supply-side value of widely-used OSS is $4.15 billion, but that the demand-side value is much larger at $8.8 trillion. We find that firms would need to spend 3.5 times more on software than they currently do if OSS did not exist.≫

From www.hbs.edu/faculty/Page...

#opensource
The Value of Open Source Software - Working Paper - Faculty & Research - Harvard Business School
www.hbs.edu
March 26, 2025 at 8:16 AM
Reposted by Jan Midtgaard
Just... have... to drop this... here.
March 24, 2025 at 1:34 AM
Scratching another old itch, I've utilized a wonderful hack by @edwintorok.bsky.social to get the Thread-modes of Lin and STM working much better 🤓
github.com/ocaml-multic...
(as in: from defunct to decent)

It even works on OCaml 4 too! 😄
Improve context switching chance in `Lin_thread` and `STM_thread` modes by jmid · Pull Request #540 · ocaml-multicore/multicoretests
This fixes #338 - or at least gives it a good kick in the right direction. Both Lin_thread and STM_thread are currently marked as experimental - and for good reason: The chance of them triggering u...
github.com
March 23, 2025 at 4:12 PM
Reposted by Jan Midtgaard
If all goes well, OCaml 5 code will ride into space in < 24 hrs.

www.dphispace.com/post/parsimo...
March 14, 2025 at 8:04 AM
> We have been using OCaml 5 in production since the middle of February 2025, and the rollout has been entirely uneventful.

This was a highlight for me, after having worked to stress test it over the past ~3 years.

There are other nuggets in @semgrep.bsky.social's latest blog post though... 🤓
Semgrep | Upgrading Semgrep from OCaml 4 to OCaml 5
semgrep.dev
March 12, 2025 at 8:25 PM
Reposted by Jan Midtgaard
Great work from @tarides.com folks on pragmatic verification of OCaml software.

Chosen as one of the distinguished papers at TACAS 2025.

Paper: janmidtgaard.dk/papers/Huber...
Code: discuss.ocaml.org/t/ann-ortac-...
March 10, 2025 at 4:18 AM
Reposted by Jan Midtgaard
Finally - Relocatable OCaml in “fully relocatable” mode is also reproducible (as long as the C compiler is reproducible) and passes its testsuite 😮‍💨🥳🎉🍾🎊
March 1, 2025 at 5:11 PM
Dear all
After a bit over 3 years my contract with Tarides has come to an end. It has been great
- working with and being team lead for an exceptional group of software engineers and
- applying my property-based testing skills to stress test and help get the multicore OCaml5 runtime+stdlib in shape.
February 18, 2025 at 9:21 AM
Raphaël Monat has a PhD position open to work on static analysis with him at Inria in Lille 🙂
recrutement.inria.fr/public/class...
#phd-position #abstract-interpretation #static-analysis #ocaml
PhD Position F/M Resource-Aware Conservative Static Analysis
Offre d'emploi Inria
recrutement.inria.fr
February 14, 2025 at 6:22 PM
Beautiful morning in Aarhus for a morning dip with 4C water and 3C air ☀️🌊🤓
February 6, 2025 at 9:35 AM
QCheck(2) hacking continues: 💻
github.com/c-cube/qchec...
Replacing an RNG split hack with faster, gastly Obj.magic one, QCheck2 on OCaml 4 starts to work reasonably 🤓
#ocaml #quickcheck #pbt
February 5, 2025 at 8:56 PM
Reposted by Jan Midtgaard
I got Linux running in a PDF file using a RISC-V emulator.

PDFs support Javascript, so Emscripten is used to compile the TinyEMU emulator to asm.js, which runs in the PDF. It boots in about 30 seconds and emulates a riscv32 buildroot system.

linux.doompdf.dev/linux.pdf
github.com/ading2210/li...
January 31, 2025 at 8:02 PM
Over the past couple of days, I've been scratching a 3-year old QCheck(2) itch github.com/c-cube/qchec...

It's nice to finally make progress on it! 😃
#ocaml #quickcheck #pbt #fp
QCheck2 shrinker improvements to list, array, bytes, strings, and functions by jmid · Pull Request #319 · c-cube/qcheck
This PR takes a first step towards improving the QCheck2 list shrinker. The current one uses the input size tree and offers only prefixes, e.g., shrinking [1;2;3;4;5;6;7;8] to [], [1;2;3;4], [1;2;3...
github.com
January 31, 2025 at 7:14 PM
Reposted by Jan Midtgaard
If you wanted no leaks you should have gone into Settings -> Security -> Configure privacy & security -> Privacy options -> Other -> Configure -> Media interface and clicked “Disallow.”

The Leak setting is on by default but we understand your privacy is important so we’ve made it easy to opt out
January 30, 2025 at 10:07 PM
Reposted by Jan Midtgaard
A post about the long and winding road that lead to the Dune build system for OCaml, and, eventually, to Dune replacing our old internal build system, Jenga.

blog.janestreet.com/how-we-accid...
How we accidentally built a better build system for OCaml
A “build system” is one of the most important tools in a developer’stoolbox. Roughly, it figures out how to create runnable programs froma bunch of different...
blog.janestreet.com
January 30, 2025 at 1:36 PM