• en

OCaml Planet

The OCaml Planet aggregates various blogs from the OCaml community. If you would like to be added, read the Planet syndication HOWTO.

1217 blog posts are available. You can read the 30 more recent ones below or view older ones.

An in-depth Look at OCaml’s new “Best-fit” Garbage Collector Strategy — OCamlPro, Mar 23, 2020

The Garbage Collector probably is OCaml’s greatest unsung hero. Its pragmatic approach allows us to allocate without much fear of efficiency loss. In a way, the fact that most OCaml hackers know little about it is a good sign: you want a runtime to gracefully do its job without having to mind it all the time.

But as OCaml 4.10.0 has now hit the shelves, a very exciting feature is in the changelog:

- #8809, #9292: Add a best-fit allocator for the major heap; still
experimental, it should be…
Read more...

Sliding Tile Puzzle, Self-Contained OCaml Webapp — Psellos, Mar 21, 2020

March 21, 2020

I just finished coding up another webapp in OCaml. I thought it would be cool to publish the sources of a small, completely self-contained app. It’s a sliding tile puzzle coded entirely in OCaml, using a few of the BuckleScript extensions. There are no dependencies on any frameworks or the like aside from the Js modules of BuckleScript. The app itself consists of just one JavaScript file—no images, nothing else.


You can try out the puzzle or get the sources a…

Read more...

New version of Try OCaml in beta! — OCamlPro, Mar 16, 2020

We are happy to announce that our venerable “Try Ocaml” service is being retired and replaced by a new, modern version based upon our work on Learn-OCaml.

Try it here

The new interface provides an editor panel besides the familiar top-level, error and warning positions highlighting, the latest OCaml release (4.10.0), local storage of your session, and more.

The service is still in beta, so it would be helpful if you could tell us about any hiccups you may encounter on the Dis…

Read more...

Frama-Clang 0.0.8 is out. Download it here. — Frama-C, Mar 10, 2020

A reasonable TyXML release | Drup's thingies — Gabriel Radanne, Mar 06, 2020

I have the pleasure to announce the release of TyXML 4.4.0, with special Reason support!

Alt-Ergo Users’ Club Annual Meeting — OCamlPro, Mar 03, 2020

The second annual meeting of the Alt-Ergo Users’ Club was held in mid-February. Our annual meeting is the perfect place to review each partner’s needs regarding Alt-Ergo. This year, we had the pleasure of receiving our partners to discuss the roadmap for future Alt-Ergo developments and enhancements.

Alt-Ergo is an automatic mathematical formula checker, jointly developed by LRI and OCamlPro (since 2014). For more information or to join the club, visit https://alt-ergo.ocamlpro.com.

Read more...

OCaml iOS Apps Ported to Browser — Psellos, Feb 24, 2020

February 24, 2020

Something like ten years ago we produced two iOS card game apps written in OCaml, partly as a proof of concept for compiling OCaml to iOS and partly because we enjoy card games. Unfortunately we weren’t able to spark a worldwide craze for writing iOS apps in OCaml or for playing Schnapsen, as we had hoped. Consequently there was very little financial return and we all had to move on to other projects.

Both apps play a very good two-player card game. The apps are essenti…

Read more...

Watch all of Jane Street's tech talks — Jane Street, Feb 20, 2020

Jane Street has been posting tech talks from internal speakers and invited guests for years—and they’re all available on our YouTube channel:

Mercurial: prettyconfig extension — Marc Simpson, Feb 16, 2020

Mercurial: prettyconfig extension

# February 16, 2020

Since the Bitbucket migration, I’ve found myself tinkering1 with Mercurial and its extensions system again (after a long hiatus).

One byproduct of this was a simple, single function extension for listing aliases in a user-friendly way. I subsequently realised that the same behaviour would be useful for arbitrary config sections (aliases, paths, schemes)… and so, the prettyconfig fork.

The prettyconfig

Read more...

Mercurial extensions (update) — Marc Simpson, Feb 05, 2020

Mercurial extensions (update)

# February 5, 2020

In my previous post, I mentioned that a couple of old Mercurial extensions are archived on this server: hg-prettypaths and hg-persona.

Both have now been lightly tidied and updated to work with newer versions of Mercurial (tested on 4.5.3, 5.3).


comments powered by Disqus

2019 at OCamlPro — OCamlPro, Feb 04, 2020

OCamlPro was created to help OCaml and formal methods spread into the industry. We grew from 1 to 21 engineers, still strongly sharing this ambitious goal! The year 2019 at OCamlPro was very lively, with fantastic accomplishments all along!

Let’s quickly review the past years’ works, first in the world of OCaml (flambda2 & compiler optimisations, opam 2, our Rust-based UI for memprof, tools like tryOCaml, ocp-indent, and supporting the OCaml Software Foundation), then in the wor…

Read more...

Bitbucket repository migration — Marc Simpson, Feb 03, 2020

Bitbucket repository migration

# February 3, 2020

Since Bitbucket are discontinuing Mercurial support in a few months’ time (see here), I’ve started migrating a few old repositories:

Read more...

Troubleshooting systemd with SystemTap — Jane Street, Feb 03, 2020

When we set up a schedule on a computer, such as a list of commands to run every day at particular times via Linux cron jobs, we expect that schedule to execute reliably. Of course we’ll check the logs to see whether the job has failed, but we never question whether the cron daemon itself will function. We always assume that it will, as it always has done; we are not expecting mutiny in the ranks of the operating system.

Ocsigen Start updated — Ocsigen project (The Ocsigen Team), Jan 20, 2020

New release: Ocsigen Start 2.15

Ocsigen Start is a template for client-server Web and/or mobile app in OCaml or ReasonML. It contains many standard features like user management, notifications, and many code examples. Use it to learn Web/mobile development in OCaml or to quickly create your own Minimum Viable Product. See an online demo.

Last features include:

  • Get rid of all remaining Camlp4 code
  • compatibility with OCaml 4.09

Ocsigen Start updated — Ocsigen blog (The Ocsigen Team), Jan 20, 2020

New release: Ocsigen Start 2.15

Ocsigen Start is a template for client-server Web and/or mobile app in OCaml or ReasonML. It contains many standard features like user management, notifications, and many code examples. Use it to learn Web/mobile development in OCaml or to quickly create your own Minimum Viable Product. See an online demo.

Last features include:

  • Get rid of all remaining Camlp4 code
  • compatibility with OCaml 4.09

opam 2.0.6 release — OCamlPro, Jan 16, 2020

We are pleased to announce the minor release of opam 2.0.6.

This new version contains some small backported fixes and build update:

  • Don’t remove git cache objects that may be used [#3831 @AltGr]
  • Don’t include .gitattributes in index.tar.gz [#3873 @dra27]
  • Update FAQ uri [#3941 @dra27]
  • Lock: add warning in case of missing locked file [#3939 @rjbou]
  • Directory tracking: fix cached entries retrieving with precise tracking [#4038 @hannesm]
  • Build:
Read more...

opam 2.0.6 release — OCaml Platform (Raja Boujbel - OCamlPro, Louis Gesbert - OCamlPro), Jan 16, 2020

We are pleased to announce the minor release of opam 2.0.6.

This new version contains some small backported fixes and build update:

  • Don't remove git cache objects that may be used [#3831 @AltGr]
  • Don't include .gitattributes in index.tar.gz [#3873 @dra27]
  • Update FAQ uri [#3941 @dra27]
  • Lock: add warning in case of missing locked file [#3939 @rjbou]
  • Directory tracking: fix cached entries retrieving with precise tracking [#4038 @hannesm]
  • Build:
    • Add sanity checks [#3934 @dra27]
    • Build man pages using dune…
Read more...

Hackers and climate activists join forces in Leipzig — MirageOS (Damien Leloup), Jan 08, 2020

Hackers and climate activists join forces in Leipzig

By Damien Leloup, special correspondent, Le Monde. Originally published by Le Monde on December 30, 2019. English translation by the MirageOS Core Team.

The Chaos Communication Congress, the world's largest self-managed event dedicated to IT security, hosted its 36th edition this weekend in Germany.

In front of Leipzig station, around fifty students and high school students are gathered. It's Sunday, but the local branch of the Fridays for F…

Read more...

Deploying authoritative OCaml-DNS servers as MirageOS unikernels — Hannes Mehnert (hannes), Dec 23, 2019

Goal

Have your domain served by OCaml-DNS authoritative name servers. Data is stored in a git remote, and let's encrypt certificates can be requested to DNS. This software is deployed since more than two years for several domains such as nqsb.io and robur.coop. This present the authoritative server side, and certificate library of the OCaml-DNS implementation formerly known as µDNS.

Prerequisites

You need to own a domain, and be able to delegate the name service to your own servers. You…

Read more...

Reproducible MirageOS unikernel builds — Hannes Mehnert (hannes), Dec 16, 2019

Reproducible builds summit

I'm just back from the Reproducible builds summit 2019. In 2018, several people developing OCaml and opam and MirageOS, attended the Reproducible builds summit in Paris. The notes from last year on opam reproducibility and MirageOS reproducibility are online. After last years workshop, Raja started developing the opam reproducibilty builder orb, which I extended at and after this years summit. This year before and after the facilitated summit there were hacking …

Read more...

Using Python and OCaml in the same Jupyter notebook — Jane Street, Dec 16, 2019

The cover image is based on Jupiter family by NASA/JPL.

Coq 8.11+beta1 is out — Coq, Dec 06, 2019

The first beta release of Coq 8.11 is available for testing.

There are two main changes brought by Coq version 8.11. First, it introduces Ltac2, a new tactic language for writing more robust larger scale tactics, with built-in support for datatypes and the multi-goal tactic monad. Second, primitive floats are integrated in terms and follow the binary64 format of the IEEE 754 standard, as specified in the `Coq.Float.Floats` library. Many other cleanups and improvements have been performed and a…

Read more...

Deep-Learning the Hardest Go Problem in the World — Jane Street, Dec 06, 2019

Updates and a New Run

Frama-C 20.0 (Calcium) is out. Download it here. — Frama-C, Dec 04, 2019

Testing OCaml releases with opamcheck — GaGallium (Florian Angeletti), Dec 03, 2019

I (Florian Angeletti) have started working at Inria Paris this August. A part of my new job is to help deal with the day-to-day care for the OCaml compiler, particularly during the release process. This blog post is a short glimpse into the life of an OCaml release.

OCaml and the opam repository

Currently, the song of the OCaml development process is a canon with two voices: a compiler release spends the first 6 months of its life as the trunk branch of the OCaml compiler git repository…

Read more...

Coq 8.10.2 is out — Coq, Nov 29, 2019

The 8.10.2 release of Coq is available.

Main changes:

  • Fixed a critical bug of template polymorphism and nonlinear universes
  • Fixed a few anomalies
  • Fixed an 8.10 regression related to the printing of coercions associated to notations
  • Fixed uneven dimensions of CoqIDE panels when window has been resized
  • Fixed queries in CoqIDE

All details can be found in the user manual.

Feedback and bug reports are extremely welcome.

Announcing Irmin 2.0.0 — MirageOS (Anil Madhavapeddy), Nov 26, 2019

We are pleased to announce Irmin 2.0.0, a major release of the Git-like distributed branching and storage substrate that underpins MirageOS. We began the release process for all the components that make up Irmin back in May 2019, and there have been close to 1000 commits since Irmin 1.4.0 release back in June

  1. To celebrate this milestone, we have a new logo and opened a dedicated website: irmin.org.

You can read more details about the new features in the Irmin v2 blog post. Enjoy the new releas…

Read more...

BAP 2.0 is released — The BAP Blog, Nov 19, 2019

The Carnegie Mellon University Binary Analysis Platform (CMU BAP) is a suite of utilities and libraries that enables analysis of programs in their machine representation. BAP is written in OCaml, relies on dynamically loaded plugins for extensibility, and is widely used for security analysis, program verification, and reverse engineering.

This is a major update that includes lots of new features, libraries, and tools, as well as improvements and bug fixes to the existing code. The following sma…

Read more...

CI/CD pipelines: Monad, Arrow or Dart? — Thomas Leonard, Nov 14, 2019

In this post I describe three approaches to building a language for writing CI/CD pipelines. My first attempt used a monad, but this prevented static analysis of the pipelines. I then tried using an arrow, but found the syntax very difficult to use. Finally, I ended up using a light-weight alternative to arrows that I will refer to here as a dart (I don’t know if this has a name already). This allows for static analysis like an arrow, but has a syntax even simpler than a monad.

Table of Con…

Read more...

On fixed-point theorems in synthetic computability — Andrej Bauer, Nov 06, 2019

I forgot to record the fact that already two years ago I wrote a paper on Lawvere's fixed-point theorem in synthetic computability:

Andrej Bauer: On fixed-point theorems in synthetic computability. Tbilisi Mathematical Journal, Volume 10: Issue 3, pp. 167–181.

It was a special issue in honor of Professors Peter J. Freyd and F. William Lawvere on the occasion of their 80th birthdays.

Lawvere's paper "Diagonal arguments and cartesian closed categories proves a beautifully simple fixed poi…

Read more...

View older blog posts.