's Avatar

@edwintorok

14
Followers
15
Following
45
Posts
10.02.2025
Joined
Posts Following

Latest posts by @edwintorok

Dockerfile for building an OPAM application, with dune/apt/opam caching I was writing some dockerfiles for building some OCaml applications recently, and realized that it is possible to write a Dockerfile that can build almost arbitrary Opam applications without even havi...

This is what I've done to better cache OPAM based builds: discuss.ocaml.org/t/dockerfile.... You can try adding some of the cache mounts and env vars from there to further speed up the application/dependency build step itself (at least locally, don't know if a CI or docker hub would benefit).

31.01.2026 08:11 👍 2 🔁 0 💬 2 📌 0

The Mathematical Society of France will not be at the 2026 International Congress of Mathematicians, to be held in Philadelphia.

This is great news. I hope other mathematical societies pull out as well. It would help if the @amermathsoc.bsky.social also declined to participate, in solidarity.

26.01.2026 20:57 👍 14 🔁 6 💬 1 📌 0

Did you try `clangd`? If you have a `compile_commands.json` (created e.g. using `bear`, or by the build system) it works even on complicated projects.

11.01.2026 10:37 👍 0 🔁 0 💬 0 📌 0

Learn gradually: basic syntax (now I can write imperative programs), basic FP concepts (now I can build a tree and higher order functions), the module system, ..., laziness, monads and Lwt, then ocaml.org/manual/5.4/e...
Don't try all these at once, tried that approach with Haskell and failed.

11.01.2026 10:33 👍 2 🔁 0 💬 0 📌 0
Preview
Learn OCaml Getting started with the OCaml programming language. Read the official tutorials, exercices, and language manual.

ocaml.org/docs has a list by level: beginner/intermediate. I'd suggest doing the introduction tutorial, then ocaml.org/docs/set-up-..., then "OCaml Programming: Correct + Efficient + Beautiful", and "Real World OCaml". Eventually they might enjoy: goblint.readthedocs.io/en/latest/de...

11.01.2026 10:27 👍 0 🔁 0 💬 0 📌 0
Post image

I can’t even keep up with this talk, they just showed two different(?) PoCs that spoof perfectly credible signatures from Satoshi and Angela Merkel.

The talk started with them booting a spoofed Fedora ISO after checking the signature.

14 vulns, 9 unpatched.

27.12.2025 17:00 👍 108 🔁 22 💬 1 📌 2

What's funny is you can tell exactly why it output this string.

When it stole literally all of Stack Overflow, it stole tons and tons of people's explanations of how to make a program that produces random character strings.

One of the easiest ways to do so, contains *this* ASCII string.

31.07.2025 05:02 👍 790 🔁 253 💬 7 📌 8
Control structures in programming languages Xavier Leroy

A new book on the history of control structures by the creator of #OCaml himself @camlist.bsky.social xavierleroy.org/control-stru...

05.11.2025 12:00 👍 15 🔁 5 💬 0 📌 1
The Infrastructure Stack Is Getting Faster. Terraform Is Not. Every part of the stack is accelerating except infrastructure. Terraform has the ecosystem but not the speed. That's fixable.

Every layer of the stack is getting faster. #Terraform isn't.

We're building Stategraph in #OCaml to change that.

stategraph.dev/blog/terrafo...

31.10.2025 08:19 👍 6 🔁 3 💬 1 📌 0
Folding in Parallel Representing fold (sequential accumulation) as map composed with a reduce over a monoid, non-trivially and efficiently. This is a bedrock of parallel programming: however, although the general princip...

`reduce` can be convenient, no initial value needed.
`map` can be easily parallelized, and so can `reduce` (as a tree). This is important for OCaml 5. But all is not lost if all you have is fold, you can transform it into a `map` and `reduce`, but it isn't trivial: okmij.org/ftp/Algorith....

19.10.2025 21:25 👍 2 🔁 1 💬 1 📌 0
Gavin Gray, Anil Madhavapeddy, KC Sivaramkrishnan, Richard Eisenberg, Chris Casinghino, Will Crichton, Shriram Krishnamurthi, Patrick Ferris, Max Slater, Megan Del Vecchio, Diana Kalinichenko, Nadia Razek

If you're interested in Oxidised OCaml (OCaml with lifetime features), see the tutorial we ran at @icfp-conference.bsky.social here: gavinleroy.com/oxcaml-tutor.... We could also use your help answering a quiz that will help us develop this further gavinleroy.com/oxcaml-icfp-... #icfpsplash25

17.10.2025 01:36 👍 12 🔁 4 💬 0 📌 0
Post image Post image

Extremely cool work on a mechanically verified garbage collector for OCaml using F* by Sheera Samsu, @kcsrk.info and colleagues at the OCaml Workshop #icfpsplash25

17.10.2025 03:31 👍 25 🔁 7 💬 0 📌 0

Nice protocol, it seems to finally solve the problem of rendering Unicode on a terminal by putting the client in charge of determining the width of a character (grapheme cluster), avoiding disagreements between the terminal emulator and client in determining the width of Unicode text.

14.10.2025 08:15 👍 1 🔁 1 💬 1 📌 0
Post image

To be clear, @satnam6502.bsky.social is talking about chip design here but feel free to meme this as you wish #icfpsplash25

13.10.2025 01:29 👍 39 🔁 4 💬 0 📌 0
Preview
GitHub - garrigue/mixev: Mixin evaluators for the expression problem, based "Code reuse through polymorphic variants" Mixin evaluators for the expression problem, based "Code reuse through polymorphic variants" - garrigue/mixev

See github.com/garrigue/mixev and www.math.nagoya-u.ac.jp/~garrigue/pa...

09.10.2025 07:29 👍 2 🔁 0 💬 0 📌 0

Although objects are not used often in OCaml, they'd work in this case, `< show : t -> string; ...>`. Then any object that has a 'show' method with the right signature would be accepted there.
You could also use a module instead of a record, and cast it to a module type containing only show.

08.10.2025 17:00 👍 4 🔁 0 💬 0 📌 0

The downside with that is that if you get logged out, because the login token expired, you might only realize that half a year later when you wonder why it suddenly got all quiet.

03.10.2025 13:44 👍 1 🔁 0 💬 0 📌 0

I used Openvibe, but couldn't find the source code.
I don't have good answers for using multiple IM protocols, but one approach that kind of works on a desktop is to open the web interface for each system in a separate tab, enable desktop notifications and *pin it*. That ensures it opens on startup.

03.10.2025 13:42 👍 0 🔁 0 💬 1 📌 0

Long ago I used Pidgin for exactly this reason. Everyone had their favourite IM protocol, and I didn't really mind, as long as I was able to use a *single* client to talk to all of them.
In theory Matrix bridges were also supposed to solve this. Maybe I need to try Pidgin again.

03.10.2025 11:30 👍 2 🔁 0 💬 1 📌 0

going to speak at Open Source Conference Luxembourg later today 🥹

about Gospel, the emerging specification language for OCaml that aims to enable a formally verified open source ecosystem

01.10.2025 05:12 👍 18 🔁 1 💬 3 📌 0

The complicated part is `ocamllex`/`menhir` support actually (although I think regular Vim would have the same problem).
There is a 5 year old PR on the vim-ocaml repository that'd fix it (unfortunately it is a breaking change, but 5 years is probably enough notice and time to merge?)

20.09.2025 23:39 👍 1 🔁 0 💬 0 📌 0

OCamlformat is not wired up in the default keybindings correctly, so typing `gq` does something completely unrelated and wrong. I've got a fix for that by rebinding 'gq' to call the appropriate LSP function, but I haven't pushed it yet.

19.09.2025 11:09 👍 1 🔁 0 💬 0 📌 0

Here are my dotfiles. I use nvim-treesitter and nvim-lspconfig, and with those plugins it is only a few lines to enable LSP support: gitlab.com/edwintorok/d...
I'll have to try and extract a minimal working config out of that though.

18.09.2025 23:20 👍 1 🔁 0 💬 1 📌 0

This is quite timely. Just noticed that if you use the dune package management preview it ends up compiling ocaml 3 times : once for the project, once more for ocamlformat, and once more for ocaml-lsp. With your work it could build it once globally and share it?

15.09.2025 14:02 👍 1 🔁 0 💬 1 📌 0
FUN OCaml 2025 - Live from Warsaw! Part 2
FUN OCaml 2025 - Live from Warsaw! Part 2 YouTube video by FUN OCaml

www.youtube.com/watch?v=-YSX...

15.09.2025 10:02 👍 5 🔁 2 💬 0 📌 0
Post image

Roadmap and project for OCaml/security !

15.09.2025 07:54 👍 6 🔁 2 💬 0 📌 0
Preview
Fun OCaml 2025: Warsaw - September 15+16, 2025 Fun OCaml 2025 is a 2 days open source hacking event dedicated to OCaml enthusiasts and professionals around the globe! Let's get together for an exhilarating event packed with creativity, innovation,...

FUN OCaml website now links to the two running live streams

fun-ocaml.com

15.09.2025 07:37 👍 6 🔁 4 💬 0 📌 0
Dockerfile for building an OPAM application, with dune/apt/opam caching I was writing some dockerfiles for building some OCaml applications recently, and realized that it is possible to write a Dockerfile that can build almost arbitrary Opam applications without even havi...

For your dockerfile, see here for how to improve caching: discuss.ocaml.org/t/dockerfile.... It doesn't have the build/prod separation that your dockerfile has though, although using 'opam depext' helps find the correct system dependencies regardless of the distro.

11.08.2025 06:44 👍 1 🔁 0 💬 1 📌 0
Preview
A Non-allocating Option (OCaml 2024 - OCaml Users and Developers Workshop 2024) - ICFP 2024 OCaml is currently receiving a strong upward trend, particularly since its new runtime environment was released in 2022, which introduced support for shared memory parallelism and effect handlers. Tha...

See icfp24.sigplan.org/details/ocam... which introduces an or_null type to avoid the nesting problem you describe

09.07.2025 07:50 👍 1 🔁 0 💬 1 📌 0
Post image

I'm pleased to announce OxCaml!

OxCaml is Jane Street's branch of OCaml. We've given it a new name and a snazzy logo, and done a bunch of work to make it easy for people to try.

13.06.2025 14:14 👍 107 🔁 40 💬 5 📌 3