Tiago Cogumbreiro's Avatar

Tiago Cogumbreiro

@forkjoin.bsky.social

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

122 Followers  |  283 Following  |  72 Posts  |  Joined: 23.11.2024  |  1.9977

Latest posts by forkjoin.bsky.social on Bluesky

no-more-cover-pages interface, showing thumbnails of annoying cover pages that no-more-cover-pages will helpfully remove for you

no-more-cover-pages interface, showing thumbnails of annoying cover pages that no-more-cover-pages will helpfully remove for you

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/

06.02.2026 08:53 โ€” ๐Ÿ‘ 10    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

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)

28.01.2026 12:55 โ€” ๐Ÿ‘ 1    ๐Ÿ” 1    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Aristotle API

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

23.01.2026 01:54 โ€” ๐Ÿ‘ 7    ๐Ÿ” 3    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Haiku also works pretty well with OCaml

20.01.2026 00:04 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Screenshot of git history showing 14 commits.

Screenshot of git history showing 14 commits.

I think my macos build of faial seems to be working again.

I would be very appreciated if you have an Apple laptop (m1 or newer) and you can the give binary dist of faial a go, you'll be able to find the link on top of the readme:

gitlab.com/umb-svl/faial

15.01.2026 00:36 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Yeah I am trying to revive my macos runner. I was struggling to get the cache working and it was kind of flaky (from what I remember). But I'll definitely have a peek at your CI script.

14.01.2026 19:28 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

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 ๐Ÿฅณ

14.01.2026 19:24 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0
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...

.@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...

12.01.2026 11:58 โ€” ๐Ÿ‘ 2    ๐Ÿ” 4    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Oh, thanks for letting me know. It should be fixed now.

28.11.2025 21:05 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Dream, ppx_blob, mustache were a pleasure to use. Of course, always a major fan of cmdliner (using the new, lovely API).
The old server was powered by nodejs. Dream boots much faster. I am also more familiar with the OCaml ecosystem, so no more wondering how to install/update my slides server.

28.11.2025 19:42 โ€” ๐Ÿ‘ 4    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Sign in ยท GitLab GitLab.com

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/...

28.11.2025 19:37 โ€” ๐Ÿ‘ 2    ๐Ÿ” 1    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

For instance, I noticed that the results I ask my students to prove are much simpler at the end of the course than at the beginning, so teaching in reverse would simplify what needs to be taught in terms of proof theory.

25.11.2025 20:17 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

I love that. It's something I've been meaning to do in a while, but b/c I followed Sipser I started from the usual way, and I haven't had the energy to do rethink the presentation. But good to know all of these great resources. Thanks for sharing these links!

25.11.2025 20:13 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Solving Fizz Buzz with Cosines - Susam Pal

susam.net/fizz-buzz-wi...

This was a lot of fun, via lobste.rs

A comment also mentioned this fascinating video youtu.be/j5s0h42GfvM?...

22.11.2025 16:34 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Haha I need to try that out. I've seen so many cool examples of DSLs in Lean

18.11.2025 19:48 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

I think I get Ltac2. It's refreshing to write tactics that have typing information. It really cleans up detailed proof manipulation.

18.11.2025 19:44 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

I have big dreams for Claude Code automating Rocq proofs, but it keeps responding in Lean tactics ๐Ÿ˜ž Is Lean the TypeScript of LLMs?

12.11.2025 17:38 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
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
A screenshot of OCaml code showing some JSON deserialization code.

A screenshot of OCaml code showing some JSON deserialization code.

The tool is all implemented in OCaml. The monadic-design pattern of parsing JSON comes from what I learned in Faial <https://gitlab.com/umb-svl/faial/> and I think it looks neat.

25.10.2025 18:28 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
A screenshot of `proof-ls` in action, showing a proof state.

A screenshot of `proof-ls` in action, showing a proof state.

The output is Markdown-formatted and the tool can figure out your Rocq project. I've been using this to help Claude Code help me, with some success. I have some scratch files in the project, including playing around with Fleche, but I haven't figured that code base yet.

25.10.2025 18:24 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Preview
Tiago Cogumbreiro / Proof Archivist ยท GitLab GitLab.com

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.

25.10.2025 18:22 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Preview
Interactive Theorem Provers for Proof Education | Proceedings of the 2025 ACM SIGPLAN International Symposium on SPLASH-E

Interactive theorem provers for proof education. ~ Romina Mahinpei, Manoel Horta Ribeiro, Mae Milano. dl.acm.org/doi/abs/10.1... #ITP #CoqProver #Teaching

13.10.2025 10:38 โ€” ๐Ÿ‘ 2    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
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.

#OCaml #OCamlPlanet

30.08.2025 14:38 โ€” ๐Ÿ‘ 1    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image

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

27.08.2025 16:45 โ€” ๐Ÿ‘ 6    ๐Ÿ” 2    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0
Programming Languages: Application and Interpretation

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

27.07.2025 17:25 โ€” ๐Ÿ‘ 34    ๐Ÿ” 6    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
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.

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...

17.07.2025 18:31 โ€” ๐Ÿ‘ 2    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
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 ...

Progress here: github.com/ocaml/dune/i...

14.07.2025 20:28 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Turns out, I forgot to run `dune pkg lock` and z3 doesn't work with Dune Preview ๐Ÿ˜ญ

I managed to advance a bit further by changing Z3's lock file, but since I have no idea of what I'm doing, z3 then failed in the linking stage.

14.07.2025 20:28 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

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!!

06.07.2025 07:59 โ€” ๐Ÿ‘ 12    ๐Ÿ” 12    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Having Claude keep tabs of what was done and then generate the migration notes was invaluable. I would've forgotten all the steps otherwise. Humans and tools can use the guide and I already used it to have Claude migrate another project without further input.

29.06.2025 15:19 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

@forkjoin is following 18 prominent accounts