Semgrep | Upgrading Semgrep from #OCaml 4 to OCaml 5
https://semgrep.dev/blog/2025/upgrading-semgrep-from-ocaml-4-to-ocaml-5/

Semgrep | Upgrading Semgrep from #OCaml 4 to OCaml 5
https://semgrep.dev/blog/2025/upgrading-semgrep-from-ocaml-4-to-ocaml-5/
OCaml Weekly News, 11 Mar 2025: * OCaml projects utilizing Category theory
* Docker base images and OCaml-CI support for OCaml lt 4.08
* ocamlmig, a tool to rewrite ocaml code, and complement ~[@@deprecated]~
* Ortac 0.6.0 improve bug reporting
* Dune Developer Preview Updates
* ppxlib.0.36.0
* I created an OCaml grammar for ANTLR4 (Earley parser compatible)
* Melange 5.0
* Other OCaml News https://alan.petitepomme.net/cwn/2025.03.11.html?utm_source=dlvr.it&utm_medium=mastodon #OCaml #OCamlPlanet
Learning OCaml: Functions without Parameters: A couple of days ago I noticed on OCaml’s Discord server that someone was
confused by OCaml function applications (invocations) like these:
print_newline ()
read_input ()
To people coming from “conventional” programming languages this might look like
calling a function/method without any arguments. (e.g. foo() in Python) Of course,
function application in OCaml is quite different from JavaScript,… https://batsov.com/articles/2025/03/02/learning-ocaml-functions-without-parameters/?utm_source=dlvr.it&utm_medium=mastodon #OCaml #OCamlPlanet
Learning OCaml: Matching Anything or the Lack of Anything: I’ve noticed that some newcomers to OCaml are a bit confused by code like the following:
let () = print_endline "Hello, world"
let _ = foo bar
Both of those are forms of pattern matching, but one of them is a lot stricter
than the other. In OCaml () is the single value of the unit type that
indicates the absence of any meaningful value. You can think of it as something like void in
other… https://batsov.com/articles/2025/02/27/learning-ocaml-matching-anything-or-the-lack-of-anything/?utm_source=dlvr.it&utm_medium=mastodon #OCaml #OCamlPlanet
Simple Ways to Run OCaml Code: When people think of OCaml they are usually thinking of compiling code to a
binary before they are able to run it. While most OCaml code is indeed compiled
to binaries, you don’t really need to do this, especially while you’re learning
the language and are mostly playing with small exercises.
Imagine you have something like this in a file named hello.ml:
let () = print_endline "Hello, world!"
You can compile this if… https://batsov.com/articles/2025/02/23/simple-ways-to-run-ocaml-code/?utm_source=dlvr.it&utm_medium=mastodon #OCaml #OCamlPlanet
The #OCaml Weekly News for 2025-03-11 is out
The OCaml Weekly News for 2025-03-11 is out
Announcing Melange 5: We are excited to announce the release of Melange 5, the compiler for OCaml
that targets JavaScript.
A lot of goodies went into this release! While our focus was mostly on features
that make it easy to express more JavaScript constructs and supporting OCaml
5.3, we also managed to fit additional improvements in the release: better
editor support for Melange externals, code generation improvements, and
better compiler output for… https://melange.re/blog/posts/announcing-melange-5?utm_source=dlvr.it&utm_medium=mastodon #OCaml #OCamlPlanet
I wrote about good type design in Rust.
It applies to any language with algebraic data types. (structs and enums) Please let me know what you think.
Just what the internet needed: another attempt to explain #monads! But this time I'm comparing #Haskell and #OCaml approaches to show why #typeclasses make all the difference. Turns out those JavaScript
Promise
analogies only tell half the story…
Functional vs Data-Driven development: a Case-Study in Clojure & OCaml
https://kirancodes.me/posts/log-data-oriented-programming.html
Discussions: https://discu.eu/q/https://kirancodes.me/posts/log-data-oriented-programming.html
OpenAI and structured outputs from OCaml: What makes this approach special?
OpenAI offers a way to have (relatively) typed communication through structured outputs. A json schema must be passed alongside the prompt. And the answer is guaranteed to follow that schema.
When working with OpenAI’s structured outputs, you typically need to:
* Define your data structures
* Create a JSON schema that describes these structures
* Parse the API… https://tech.ahrefs.com/openai-and-structured-outputs-from-ocaml-b198fcf701ca?source=rss----303662d88bae--ocaml&utm_source=dlvr.it&utm_medium=mastodon #OCaml #OCamlPlanet
Wrote a blog post comparing Data-Oriented vs Functional Programming in Clojure versus OCaml~
https://kirancodes.me/posts/log-data-oriented-programming.html
#OCaml #Clojure #ProgrammingLanugages #DataOrientedProgramming #FunctionalProgramming #Lisp
This is awesome! And makes me wish it were on the horizon for OCaml too...
Feature Parity Series: Statmemprof Returns!: Welcome to part two of our feature parity series! In it, we present returning features that were originally lost when OCaml gained multicore support. The addition of multiple domains means that the underpinning design decisions behind certain features have had to change significantly, and work is ongoing to adapt them and return them to OCaml 5.
One of these features is memory profiling, which, after much… https://tarides.com/blog/2025-03-06-feature-parity-series-statmemprof-returns?utm_source=dlvr.it&utm_medium=mastodon #OCaml #OCamlPlanet
Today I came across ECaml (https://github.com/janestreet/ecaml) - a project that allows you to write #Emacs plugins in #OCaml. While, I don't have any issues with Elisp, I'll definitely check it out at some point. I'm guessing Jane Street are using it for their internal Emacs plugins.