Sign in

Tiago Cogumbreiro

@forkjoin.bsky.social
132 followers 291 following 82 posts

Associate professor @ UMass Boston | cogumbreiro.github.io | Faial is a verifier for #CUDA and #WebGPU written in #OCaml gitlab.com/umb-svl/faial #ocaml #rocq

PostsRepliesMedia
Tiago Cogumbreiro @forkjoin.bsky.social · 27/09/2026
I have been having fun remembering I enjoy pixel art, by designing an android app icon. TIL, because of zoom+high res less detail makes icon more discernable.
4 versions of an app icon
020
Tiago Cogumbreiro @forkjoin.bsky.social · 24/09/2026
I have a snapshot of Faial, our CUDA verifier, finally running on the Web. The code runs fully client side. This is a tool written in OCaml linked dynamically against Z3, and invoking a C++ process that links against LLVM, all 3 are compiled into JS/wasm. tiagoc.netlify.app Temporary link.
tiagoc.netlify.app
040
Tiago Cogumbreiro @forkjoin.bsky.social · 24/09/2026
Itch I want to scratch: Compile OCaml into JavaScript to write a native GNOME application.
351
Reposted by Tiago Cogumbreiro
a ton of crates @tonofcrates.bsky.social · 11/02/2025
rice's theorem is just the CAP theorem but for PL. sound, complete, decidable: pick two
1183
Reposted by Tiago Cogumbreiro
Leanpub @leanpub.bsky.social · 06/07/2026
The OCaml Handbook: A Complete Guide from First Program to Production Systems by Steve T. Publications is a new release on Leanpub! Discover the power and elegance of OCaml, from your very first program to production-ready applications. The OCaml Handbook … leanpub.com/theocamlhand...
0106
Reposted by Tiago Cogumbreiro
Sung Kim @sungkim.bsky.social · 06/04/2026
People are using AI to break CUDA’s moat. Given any pytorch model, it profiles it, ranks bottlenecks by amdahl's law, writes triton or CUDA C++ replacements, and runs 300+ experiments overnight with no human in the loop. - 5.29x over pytorch eager on rmsnorm - 2.82x on softmax
111014
Reposted by Tiago Cogumbreiro
David Sancho @david.sancho.dev · 04/04/2026
Let's have great documentation for your OCaml project. Markdown is not the excuse anymore I wrote a blog post about odoc's Markdown backend sancho.dev/blog/ocaml-...
sancho.dev
OCaml documentation as markdown | sancho.dev
Turn your OCaml API documentation into publishable Markdown
0194
Reposted by Tiago Cogumbreiro
Anil Madhavapeddy @anil.recoil.org · 01/04/2026
This is such an ingenious Apr 1st PR from Stephen Dolan I feel like it's the exact opposite of AI slop github.com/ocaml/ocaml/...
github.com
C++ support by stedolan · Pull Request #14701 · ocaml/ocaml
This patch adds a new C++ backend to ocamlc, improving on the unincremented C currently in use by the runtime and FFI. As an example, here's a simple program that computes the prime numbers up ...
0136
Tiago Cogumbreiro @forkjoin.bsky.social · 31/03/2026
I'm getting closer to having an e-graphs library that can be shared with others. I'm porting some of the tutorials from Egg to finetune the UX and to see if I can reproduce some of the functionality. I am really enjoying ODoc+Dune! Nice combo.
A screenshot of Egg's Getting Started guide ported to an OCaml API.
000
Tiago Cogumbreiro @forkjoin.bsky.social · 24/03/2026
I've been nerd-sniped into implementing E-graphs in OCaml. It's a lovely algorithm, which kind of reminds me of the Sea of Nodes IR. The paper egg was a lot of fun to read.
092
Reposted by Tiago Cogumbreiro
Josh Horowitz @joshuahhh.com · 06/02/2026
I don't like cover pages on my PDFs so I made a li'l program to strip them from PDFs in my Zotero library uvx no-more-cover-pages github.com/joshuahhh/no-more-cover-pages/
no-more-cover-pages interface, showing thumbnails of annoying cover pages that no-more-cover-pages will helpfully remove for you
0112
Reposted by Tiago Cogumbreiro
Arjun Guha @arjunguha.bsky.social · 28/01/2026
Introducing SlopOS: a new vibe-coded, operating system for safety-critical applications. SlopOS leapfrogs existing OS designs with first-class support for a new memory managed, object-capability based programming language for the userland and core kernel routines. (1/3)
111
Reposted by Tiago Cogumbreiro
Satnam Singh @satnam6502.bsky.social · 23/01/2026
At Harmonic we've just announced $1,000,000 of sponsorship for Principal Investigators and Rising Mathematicians. Significant O($100K) funding for high-impact projects. Early access to next-generation Aristotle models. Please apply! aristotle.harmonic.fun/sponsorships
aristotle.harmonic.fun
Aristotle API
073
Tiago Cogumbreiro @forkjoin.bsky.social · 14/01/2026
I'm doing my bi-annual tradition of trying to build Faial for windows/macos with a CI script and failing miserably. It's been +5 years 🥳
200
Reposted by Tiago Cogumbreiro
Stefan Marr @stefan-marr.de · 12/01/2026
.@julien-lange.bsky.social and I are looking for a PostDoc to work on our EPSRC Project "INDIMO: Invariant Discovery and Monitoring for Message-Passing Programs". If you know someone, or are interested, please reach out! A few details here: jobs.royalholloway.ac.uk/Vacancy.aspx...
jobs.royalholloway.ac.uk
Job Opportunity at Royal Holloway University of London: Postdoctoral Research Associate
Full-Time, Fixed-Term until 30 November 2028Applications are invited for the post of Post Doctoral Research Associate (PDRA) in the Department of Computer Science at Royal Holloway.This is a three-year full-time position funded by the EPSRC project...
024
Tiago Cogumbreiro @forkjoin.bsky.social · 28/11/2025
I've been using gnab/remark's slides for almost 10 years now. I was using sinedied/backslide as a launcher for a while, but finally decided to write my own in OCaml with Dream as I had heard about it. Presenting Shearwater, a remark server that should work out of the box: gitlab.com/cogumbreiro/...
gitlab.com
Sign in · GitLab
GitLab.com
221
Tiago Cogumbreiro @forkjoin.bsky.social · 22/11/2025
susam.net/fizz-buzz-wi... This was a lot of fun, via lobste.rs A comment also mentioned this fascinating video youtu.be/j5s0h42GfvM?...
susam.net
Solving Fizz Buzz with Cosines - Susam Pal
000
Tiago Cogumbreiro @forkjoin.bsky.social · 18/11/2025
I think I get Ltac2. It's refreshing to write tactics that have typing information. It really cleans up detailed proof manipulation.
100
Tiago Cogumbreiro @forkjoin.bsky.social · 12/11/2025
I have big dreams for Claude Code automating Rocq proofs, but it keeps responding in Lean tactics 😞 Is Lean the TypeScript of LLMs?
020
Reposted by Tiago Cogumbreiro
Bozhidar Batsov (a.k.a. Bug) @batsov.net · 05/11/2025
A new book on the history of control structures by the creator of #OCaml himself @camlist.bsky.social xavierleroy.org/control-stru...
xavierleroy.org
Control structures in programming languages
Xavier Leroy
0155
Tiago Cogumbreiro @forkjoin.bsky.social · 25/10/2025
I am publishing an itch I've add in the last few days gitlab.com/cogumbreiro/... This is a simple CLI tool for Rocq that shows the proof state/typing info of a source code location, via rocq-lsp. I'm trying to learn the code base of rocq-lsp, but it's a large project.
gitlab.com
Tiago Cogumbreiro / Proof Archivist · GitLab
GitLab.com
100
Reposted by Tiago Cogumbreiro
José A. Alonso @jalonso.eurosky.social · 13/10/2025
Interactive theorem provers for proof education. ~ Romina Mahinpei, Manoel Horta Ribeiro, Mae Milano. dl.acm.org/doi/abs/10.1... #ITP #CoqProver #Teaching
dl.acm.org
Interactive Theorem Provers for Proof Education | Proceedings of the 2025 ACM SIGPLAN International Symposium on SPLASH-E
022
Reposted by Tiago Cogumbreiro
OCaml @ocaml.org · 30/08/2025
#OCaml #OCamlPlanet
dlvr.it
Static linking in OCaml
Most of the time, you don’t think about how your file is linked. We’ve come to love dynamically linked files with their small file sizes and reduced memory requirements, but there are times when the convenience of a single binary download from a GitHub release page is really what you need. To do this in OCaml, we need to add -ccopt -static to the ocamlopt. I’m building with dune, so I can configure that in my dune file using a flags directive. (flags (:standard -ccopt -static)) This can be extended for maximum compatibility by additionally adding -ccopt -march=x86-64, which ensures the generated code will run on any x86_64 processor and will not use newer instruction set extensions like SSE3, AVX, etc. So what about Windows? The Mingw tool chain accepts -static. Including (flags (:standard -ccopt "-link -Wl,-static -v")) got my options applied to my dune build: x86_64-w64-mingw32-gcc -mconsole -L. -I"C:/Users/Administrator/my-app/_opam/lib/ocaml" -I"C:\Users\Administrator\my-app\_opam\lib\mccs" -I"C:\Users\Administrator\my-app\_opam\lib\mccs\glpk/internal" -I"C:\Users\Administrator\my-app\_opam\lib\opam-core" -I"C:\Users\Administrator\my-app\_opam\lib\sha" -I"C:/Users/Administrator/my-app/_opam/lib/ocaml\flexdll" -L"C:/Users/Administrator/my-app/_opam/lib/ocaml" -L"C:\Users\Administrator\my-app\_opam\lib\mccs" -L"C:\Users\Administrator\my-app\_opam\lib\mccs\glpk/internal" -L"C:\Users\Administrator\my-app\_opam\lib\opam-core" -L"C:\Users\Administrator\my-app\_opam\lib\sha" -L"C:/Users/Administrator/my-app/_opam/lib/ocaml\flexdll" -o "bin/main.exe" "C:\Users\ADMINI~1\AppData\Local\Temp\2\build_d62d04_dune\dyndllb7e0e8.o" "@C:\Users\ADMINI~1\AppData\Local\Temp\2\build_d62d04_dune\camlrespec7816" "-municode" "-Wl,-static" However, ldd showed that this wasn’t working: $ ldd main.exe | grep mingw libstdc++-6.dll => /mingw64/bin/libstdc++-6.dll (0x7ffabf3e0000) libgcc_s_seh-1.dll => /mingw64/bin/libgcc_s_seh-1.dll (0x7ffac3130000) libwinpthread-1.dll => /mingw64/bin/libwinpthread-1.dll (0x7ffac4b40000) I tried a lot of different variations. I asked Claude… then I asked @dra27 who recalled @kit-ty-kate working on this for opam. PR#5680 The issue is the auto-response file, which precedes my static option. We can remove that by adding -noautolink, but now we must do all the work by hand and build a massive command line. (executable (public_name main) (name main) (flags (:standard -noautolink -cclib -lunixnat -cclib -lmccs_stubs -cclib -lmccs_glpk_stubs -cclib -lsha_stubs -cclib -lopam_core_stubs -cclib -l:libstdc++.a -cclib -l:libpthread.a -cclib -Wl,-static -cclib -ladvapi32 -cclib -lgdi32 -cclib -luser32 -cclib -lshell32 -cclib -lole32 -cclib -luuid -cclib -luserenv -cclib -lwindowsapp)) (libraries opam-client)) It works, but it’s not for the faint-hearted. I additionally added (enabled_if (= %{os_type} Win32)) to my rule so it only runs on Windows.
011
Reposted by Tiago Cogumbreiro
Joseph Garvin @josephhgarvin.bsky.social · 27/08/2025
Interesting retrospective 👇 on why V8 team abandoned Sea of Nodes. Have to say SoN seems obviously correct, is Javascript just not designed to leverage it. AFAICT they treated memory as one giant register re: dependencies; langs like Rust w/ better aliasing info should do better
262
Reposted by Tiago Cogumbreiro
Shriram Krishnamurthi @shriram.bsky.social · 27/07/2025
Pleased to announce that the third edition of my PL book, PLAI, is finally available on paper! Same price as it's been for 20 years (-:. Also made it available on Kindle EPUB, and a few other options. (Always free options, of course.) Enjoy! www.plai.org
plai.org
Programming Languages: Application and Interpretation
0346
Reposted by Tiago Cogumbreiro
Kiran @kirancodes.me · 17/07/2025
decoders library is quite elegant, esp if your format is absolutely disgusting (source used it to parse the activitypub spec, the most underspecified and broken format known to humankind) github.com/kiranandcode...
github.com
ocamlot/lib/activitypub/decode.ml at d677ae6b208074660811dc9120e6b90353e7f338 · kiranandcode/ocamlot
An Activitypub server in OCaml! Contribute to kiranandcode/ocamlot development by creating an account on GitHub.
021
Reposted by Tiago Cogumbreiro
Kiran @kirancodes.me · 06/07/2025
PSA! Please share around! Due to a limited number of submissions, we're extending the OCaml Workshop deadline by a week to July 10th AoE! Functional programmers! Heed my call! We need your submissions!!
01212
Tiago Cogumbreiro @forkjoin.bsky.social · 29/06/2025
I migrated from a Coq 8.19 + coq_makefile to dune + Rocq 9.0, assisted with Claude Code. It was a great experience, as there are so many little (tedious) details, from opam, Git, dune, etc. gitlab.com/cogumbreiro/...
gitlab.com
110
Reposted by Tiago Cogumbreiro
Kiran @kirancodes.me · 27/06/2025
If you are a functional programmer in Asia, then it is your obligation, nay your existential imperative to submit to the OCaml workshop this year SPLASH/ICFP is in Asia this year and we have fewer submissions from the western folks because of the distance Submit!!! Plsplsplsplsplz
0126
Tiago Cogumbreiro @forkjoin.bsky.social · 19/06/2025
I'm learning to use Claude code for my Rocq proof development. First rule of fight club: If ANY proof attempt fails to compile, STOP IMMEDIATELY. Otherwise, Claude just exhausts my tokens.
**CRITICAL RULE**: If ANY proof attempt fails to compile, STOP IMMEDIATELY.
000
Tiago Cogumbreiro @forkjoin.bsky.social · 25/05/2025
Original post: types.pl/@liamoc/1145...
010
Reposted by Tiago Cogumbreiro
Kiran @kirancodes.me · 21/05/2025
Oh, defo you should! I am sad that I don't currently have any research actively working on lean at the moment because programming in it is honestly like working in the language of my dreams; I can truly extend it as much and as often as I want to fix any pain points github.com/kiranandcode...
github.com
GitHub - kiranandcode/LeanTeX: Write LaTeX presentations directly from Lean4~
Write LaTeX presentations directly from Lean4~. Contribute to kiranandcode/LeanTeX development by creating an account on GitHub.
021
Tiago Cogumbreiro @forkjoin.bsky.social · 12/05/2025
Here's a short demo I gave to my students on proving a simple result without ltac (functional style). #Rocq gist.github.com/cogumbreiro/...
`nat_ind  (fun x => x + 0 = x) eq_refl  (fun n IH => eq_S (n + 0) n IH)`
110
Tiago Cogumbreiro @forkjoin.bsky.social · 11/05/2025
Paper reviewing, 5 out of 10 done, 2 weeks to go. 🥵
010
Tiago Cogumbreiro @forkjoin.bsky.social · 11/05/2025
Z3 builds in Dune Developer Preview! <3 Love it. I can't wait to have time to make our project build with the new dune! #ocaml github.com/ocaml/dune/i...
github.com
Dune Developer Preview (Sept-28-2024) fails to build z3 · Issue #10970 · ocaml/dune
Expected Behavior I would like to migrate my project to Dune developer preview. Actual Behavior dune build is unable to compile the package z3. See point 4 below for output. Reproduction 1. Create ...
211
Tiago Cogumbreiro @forkjoin.bsky.social · 09/05/2025
@ NEPLS
041
Tiago Cogumbreiro @forkjoin.bsky.social · 07/05/2025
Cross-compiling OCaml www.chrisarmstrong.dev/posts/ocaml-...
chrisarmstrong.dev
OCaml cross-compilation: an experiment
OCaml has no official solution to cross-compilation, with many disparate options developed for different use cases. In this article I describe my own experiments with cross-compilation and attempts to...
020
Tiago Cogumbreiro @forkjoin.bsky.social · 28/04/2025
I really enjoy reviewing papers. I am reviewing this paper for OOPSLA. I understood the intro. The overview section started by making me giggle and the problem statement was clear as day. I'm pumped to discover what comes next. Hopefully, a strong accept.
130
Tiago Cogumbreiro @forkjoin.bsky.social · 14/04/2025
ECS in #OCaml featuring extensible variant types and GADTs edwardwibowo.com/blog/ocaml-g...
edwardwibowo.com
OCaml Game Engine: ECS
My experience implementing camlcade's archetypal Entity-Component-System (ECS) in OCaml.
030
Reposted by Tiago Cogumbreiro
Cyrus Omar on sabbatical in Cambridge @neurocy.bsky.social · 03/04/2025
new book on session types just dropped! www.cambridge.org/us/universit...
cambridge.org
Session Types | Programming languages and applied logic
03512
Tiago Cogumbreiro @forkjoin.bsky.social · 02/04/2025
Finally, a roguelike powered by OCaml's type system! github.com/Octachron/ro...
github.com
GitHub - Octachron/roguetype: The first ever roguelike written in the OCaml type system
The first ever roguelike written in the OCaml type system - Octachron/roguetype
061
Reposted by Tiago Cogumbreiro
Instituto Superior Técnico @istecnico.bsky.social · 24/03/2025
Unite! Visiting Professorship Programme at TU Darmstadt (2nd Call) is open for applications until 31 March. 🔗 More information: tinyurl.com/3ppnw75f #TécnicoLisboa #ULisboa
021
Tiago Cogumbreiro @forkjoin.bsky.social · 16/03/2025
I'm visiting the University of Utah this upcoming week. First time at Salt Lake City. Excited for a week of research!
010
Reposted by Tiago Cogumbreiro
Alcides Fonseca @handle.invalid · 13/03/2025
We're hiring Professors at all levels! If you work on #SoftwareEngineering or #PL and wouldn't mind working in sunny Lisbon, get in touch!
1168
Reposted by Tiago Cogumbreiro
Anil Madhavapeddy @anil.recoil.org · 02/03/2025
The new Claude Code CLI amazingly built high-level OCaml bindings to drive my Adafruit Matrix LED display from scratch, but it does desperately need a more sophisticated sandboxing model. anil.recoil.org/notes/claude..., including recent work with @neurocy.bsky.social and @patrick.sirref.org
anil.recoil.org
Oh my Claude, we need agentic copilot sandboxing right now
3204
Tiago Cogumbreiro @forkjoin.bsky.social · 28/02/2025
I bought @unpackinggame.com. The objective is to organize a room that you just moved in. You're unpacking these boxes and placing the items in drawers, closets etc. I love the irony of playing Unpacking while being at a messy room that I should be cleaning. It's a unique game in that way.
A screenshot of the game unpacking.
000
Tiago Cogumbreiro @forkjoin.bsky.social · 24/02/2025
Today I played around with dune's integration of Rocq. Took me a while to wrap my head around the defaults and options. I also installed VSCoq for the first time. I learned that profiles are the only sane way for me to experience VSCode.
010
Tiago Cogumbreiro @forkjoin.bsky.social · 16/02/2025
SSA implementation notes, by pizlonator. gist.github.com/pizlonator/c...
gist.github.com
How I implement SSA form
How I implement SSA form. GitHub Gist: instantly share code, notes, and snippets.
010
Tiago Cogumbreiro @forkjoin.bsky.social · 14/02/2025
Neat usage of GADTs: dev.to/maxim092001/... #ocaml
dev.to
OCaml GADTs for Authentication Tokens
In this article, I will present and explain a real-world usage of Generalized Algebraic Data Types...
083
Tiago Cogumbreiro @forkjoin.bsky.social · 11/02/2025
A brief survey on generating SSA: bernsteinbear.com/blog/ssa
bernsteinbear.com
A catalog of ways to generate SSA | Max Bernstein
Static Single Assignment is a program representation where each “variable” (though this term can be misleading) is assigned exactly once. Mostly the variables aren’t variables at all, but instead names for values—for expressions. SSA is used a lot in compilers. I’m making this page to catalog the papers I have found interesting and leave a couple of comments on them.
010