edwintorok.bsky.social
@edwintorok.bsky.social
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.
January 11, 2026 at 10:37 AM
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.
January 11, 2026 at 10:33 AM
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...
Learn OCaml
Getting started with the OCaml programming language. Read the official tutorials, exercices, and language manual.
ocaml.org
January 11, 2026 at 10:27 AM
Reposted
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.
December 27, 2025 at 5:00 PM
`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....
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...
okmij.org
October 19, 2025 at 9:25 PM
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.
October 14, 2025 at 8:14 AM
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.
October 8, 2025 at 5:00 PM
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.
October 3, 2025 at 1:44 PM
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.
October 3, 2025 at 1:42 PM
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.
October 3, 2025 at 11:30 AM
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?)
September 20, 2025 at 11:39 PM
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.
September 19, 2025 at 11:09 AM
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.
gitlab.com
September 18, 2025 at 11:20 PM
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?
September 15, 2025 at 2:02 PM
Reposted
Roadmap and project for OCaml/security !
September 15, 2025 at 7:54 AM