Advertisement · 728 × 90

Posts by Tiago Cogumbreiro

Post image

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

2 weeks ago 110 14 1 2
OCaml documentation as markdown | sancho.dev Turn your OCaml API documentation into publishable Markdown

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

2 weeks ago 19 4 0 0
Preview
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 ...

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

2 weeks ago 12 6 0 1
A screenshot of Egg's Getting Started guide ported to an OCaml API.

A screenshot of Egg's Getting Started guide ported to an OCaml API.

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.

2 weeks ago 0 0 0 0

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.

3 weeks ago 9 2 0 0
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/

2 months ago 11 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)

2 months ago 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

2 months ago 7 3 0 0

Haiku also works pretty well with OCaml

3 months ago 1 0 1 0
Advertisement
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

3 months ago 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.

3 months ago 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 🥳

3 months ago 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...

3 months ago 2 4 0 0

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

4 months ago 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.

4 months ago 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/...

4 months ago 2 1 2 0
Advertisement

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.

4 months ago 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!

4 months ago 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?...

4 months ago 0 0 0 0

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

5 months ago 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.

5 months ago 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?

5 months ago 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...

5 months ago 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.

5 months ago 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.

5 months ago 0 0 1 0
Advertisement
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.

5 months ago 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

6 months ago 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

7 months ago 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

7 months ago 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

8 months ago 34 6 0 0