Tim McGilchrist's Avatar

Tim McGilchrist

@tsmc.purely-functional.com

OCaml and Haskell connoisseur. Principal software engineer at Tarides. Compilers, runtimes, garbage collection, and general systems hackery. More at https://lambdafoo.com

156
Followers
33
Following
63
Posts
11.12.2024
Joined
Posts Following

Latest posts by Tim McGilchrist @tsmc.purely-functional.com

More CFI and frame pointers work Β· Perpetually Curious Blog

More work on CFI and frame pointers for OCaml, working on getting all this through review and merged. lambdafoo.com/posts/2026-0...

08.02.2026 21:59 πŸ‘ 2 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Preview
The First Wasm_of_ocaml Release is Out! Wasm_of_ocaml launches its first feature-complete release, seamlessly compiling OCaml bytecode into WebAssembly modules.

Well it was early last year tarides.com/blog/2025-02... and there are more performance improvements since then. Plus an early prototype for WASI support github.com/ocsigen/js_o...

27.01.2026 02:28 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

In my own interregnum, but:

I’m open to new opportunities.

If you’re looking for someone who can lead teams working in AWS/serverless, Typescript or OCaml, and/or take an observability or DevOps lens to their cloud infrastructure, I’d love to chat.

I’m based in Sydney for onsite/hybrid/remote

26.01.2026 06:56 πŸ‘ 8 πŸ” 6 πŸ’¬ 1 πŸ“Œ 0

Have you heard about ocaml-eglot? @xvw.lol

08.12.2025 01:06 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 1
Preview
GitHub - tmcgilchrist/ocaml-capstone: OCaml bindings to the Capstone disassembly framework OCaml bindings to the Capstone disassembly framework - tmcgilchrist/ocaml-capstone

Rather than advent of code, I’m bulk releasing the WIP OCaml libraries I’ve worked on since ICFP. Today it’s ctypes based Capstone bindings github.com/tmcgilchrist.... The project could use some demo applications but it does seem to work for ARM64 code I’ve thrown at it.

08.12.2025 01:05 πŸ‘ 12 πŸ” 2 πŸ’¬ 1 πŸ“Œ 0

Well they essentially do so yes. I owe you a full demo for USDT, I haven’t forgotten just busy on another project.

08.12.2025 01:02 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

The new Ryzen 9950X can chew through llvm and gdb builds no sweat.

04.12.2025 00:58 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I like the idea of Advent of Code, but I always have too many projects I'm already working on.

01.12.2025 23:05 πŸ‘ 4 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Durin is a library for reading and writing the Dwarf debugging format | Hacker News

Soft-launching my OCaml DWARF 5 library Durin (yes LOTR inspired) github.com/tmcgilchrist... since it got posted on news.ycombinator.com/item?id=4611...
It is heavily in development, right now focusing on reading DWARF 5 and building debugging tooling for OCaml compiler work. Write support later on

01.12.2025 23:02 πŸ‘ 9 πŸ” 2 πŸ’¬ 1 πŸ“Œ 0

I on the other hand ordered the wrong power supply and have to wait to boot-up the new OCaml Unix hacking machine :-/

30.11.2025 22:37 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

It requires close supervision that's for sure. Writing tedious C bindings or repetitive code (with thorough testing) seems like a good use for LLM coding.

30.11.2025 22:35 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Fun weekend building my son's first PC, we got all the parts right and it booted the first time. πŸ’ͺ Then we setup Ubuntu for Linux gaming with Proton/Steam. Not exactly the smoothest experience with Ubuntu UI being very laggy but he'll learn more using Linux.

30.11.2025 22:32 πŸ‘ 3 πŸ” 0 πŸ’¬ 2 πŸ“Œ 0

Also the Haskell treesitter mode was missing some functionality last time I checked.

30.11.2025 19:54 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Add tree-sitter support for everything by tmcgilchrist Β· Pull Request #1 Β· tmcgilchrist/tuareg This is an experiment to add tree-sitter support to Tuareg and support almost everything (except OCaml SMIE indentation). Uses the following tree-sitter grammars: OCaml: https://github.com/tree-si...

Treesitter OCaml already exists plus various supporting modes for menhir, ocamllex, dune and opam. github.com/tmcgilchrist...

Could use support for odoc and cram files ;-)

30.11.2025 19:54 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Using ctypes Claude has quite confidently used Obj.magic on types it couldn’t get to lineup. :-)

30.11.2025 09:02 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Awesome work!!!!!

29.11.2025 22:17 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

All the parts for the new OCaml benchmarking server have arrived. Weekend goal will be putting this all together and setting up Linux.

26.11.2025 03:06 πŸ‘ 4 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0
Preview
GitHub - tmcgilchrist/avro-simple: Pure OCaml implementation of Apache Avro Pure OCaml implementation of Apache Avro. Contribute to tmcgilchrist/avro-simple development by creating an account on GitHub.

A pure OCaml implementation of Apache Avro with codec-based design, schema evolution support, and container file format. Version 0.1 released on opam.

github.com/tmcgilchrist...

26.11.2025 02:50 πŸ‘ 10 πŸ” 2 πŸ’¬ 0 πŸ“Œ 2
Preview
GitHub - tmcgilchrist/durin: Durin is a library for reading and writing the Dwarf debugging format Durin is a library for reading and writing the Dwarf debugging format - tmcgilchrist/durin

Writing my own DWARF 5 library in OCaml github.com/tmcgilchrist... learning a lot about the spec and how CFI works. Only doing reading at the moment then I’ll tackle writing DWARF.

22.11.2025 23:58 πŸ‘ 9 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

Not to mention wasting peoples time. Sure use LLMs if you want but when you push all the effort to review onto others it isn’t saving anything overall.

22.11.2025 23:51 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Shopping for a vintage CRT serial terminal, ideally a DEC VT330 with the lovely orange glow. Need something to hook up to the new benchmarking server. :-)

20.11.2025 20:40 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Even better if you’re using eBPF you can trigger the tracing to start on interesting events. Then write an eBPF script that contains the logic for what is interesting.

20.11.2025 05:00 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

You write a JSON serialization for the types you want to include in probes and the library only calls the serialization when the probe is enabled.

20.11.2025 00:08 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
GitHub - tmcgilchrist/ocaml_usdt: Userland Statically Defined Tracing (USDT) probes for OCaml applications. Userland Statically Defined Tracing (USDT) probes for OCaml applications. - tmcgilchrist/ocaml_usdt

It is totally possible to add to user code. You either extend the compiler so you can emit special assembly code blocks, or you use the C probes API. I’ve implemented this second option in github.com/tmcgilchrist...

It follows the Rust USDT approach where probe data is supplied as JSON

20.11.2025 00:06 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Ok I need to write something up as a placeholder. USDT, debuggers and performance tooling.

19.11.2025 22:16 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
Add USDT probes for key events in OCaml runtime by tmcgilchrist Β· Pull Request #32 Β· tmcgilchrist/ocaml Corresponding OCaml level USDT probes https://github.com/tmcgilchrist/ocaml_usdt

Experimenting with USDT support in the OCaml runtime and user code. Being able to DTrace and join up OCaml stacks with runtime activity is magical. WIP modifications to OCaml github.com/tmcgilchrist... Of course it works with eBPF but Dtrace has that Solaris cool factor.

19.11.2025 22:05 πŸ‘ 4 πŸ” 1 πŸ’¬ 2 πŸ“Œ 0

Do you know when the conference is likely to be held? Working out whether I can make the trip to Europe to present.

19.11.2025 22:01 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
Why I chose OCaml as my primary language A detailed explanation of why I chose OCaml as the β€˜default’ programming language for every project.

Here is a rather lengthy write-up (in English) explaining why I chose #OCaml as my main programming language for my personal and professional projects!

xvw.lol/en/articles/...

I hope you find this interesting, and I welcome any feedback!

13.08.2025 18:06 πŸ‘ 26 πŸ” 11 πŸ’¬ 1 πŸ“Œ 0

Hadn’t thought about publishing it there. Once I’ve done the editing I’ll share a link to it.

23.04.2025 23:25 πŸ‘ 0 πŸ” 0 πŸ’¬ 2 πŸ“Œ 0
Post image

Super excited to have Chris Armstrong talking about OCaml and AWS at FP-SYD tonight.

23.04.2025 09:01 πŸ‘ 5 πŸ” 2 πŸ’¬ 2 πŸ“Œ 0