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

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

Deprecating file releases on the forge — OCamlCore Forge News (Sylvain Le Gall), Jan 18, 2019

As part of the deprecation plan for forge.ocamlcore.org, the ability to upload files to the forge will soon be deprecated. Projects will not have the ability to create new releases. I will keep the current uploaded files and will continue to serve them. Here is what will change, once the deprecation will be done: - files will be moved to a new static host: https://download.ocamlcore.org - all links in the "Files" section will point to an URL https://download.ocamlcore.org - statistic…Read more...

Coq 8.9.0 is out — Coq, Jan 18, 2019

The 8.9.0 release of Coq is available.

It features many quality-of-life improvements, including goal differences as well as numeral and custom notations. For details, see the CHANGES file.

Feedback and bug reports are extremely welcome.

Improving Tezos Storage — OCamlPro, Jan 15, 2019

Running a Tezos node currently costs a lot of disk space, about 59 GB for the context database, the place where the node stores the states corresponding to every block in the blockchain, since the first one. Of course, this is going to decrease once garbage collection is integrated, i.e. removing very old information, that is not used and cannot change anymore (PR720 by Thomas Gazagnaire, Tarides, some early tests show a decrease to 14GB ,but with no performance evaluation). As a side note, thi…

Read more...

How configurator reads C constants — Tarides (Etienne M.), Jan 03, 2019

Dune comes with a library to query OS-specific information, called configurator. It is able to evaluate C expressions and turn them into OCaml value. Surprisingly, it even works when compiling for a different architecture. How can it do that?

Using TLA+ to understand Xen vchan — Thomas Leonard, Jan 01, 2019

The vchan protocol is used to stream data between virtual machines on a Xen host without needing any locks. It is largely undocumented. The TLA Toolbox is a set of tools for writing and checking specifications. In this post, I’ll describe my experiences using these tools to understand how the vchan protocol works.

Table of Contents

Read more...

Senior Software Engineer at camlCase (Full-time) — Functional Jobs (FunctionalJobs.com), Dec 27, 2018

camlCase is a blockchain research and development company, based in Brooklyn, NY. We build developer tools, write educational material, and offer consulting services for Tezos, with a particular focus on Michelson, Tezos' smart contract language.

You might be a good fit if your experience and interest includes any of the following:

  • Type-safe programming languages: OCaml, Haskell, Rust, PureScript
  • Programming language design implementation: parsers, interpreters, compilers, type systems, …
Read more...

ocaml-http--migration-to-github — OCamlCore Forge News (Claudio Sacerdoti Coen), Dec 17, 2018

The ocaml-http project now resides on Github, https://github.com/sacerdot/ocaml-http. Further developments and new releases will take place on Github, not on this forge.

opam 2.0.2 release — OCamlPro, Dec 14, 2018

We are pleased to announce the release of opam 2.0.2.

As sandbox scripts have been updated, don’t forget to run opam init --reinit -ni to update yours.

This new version contains mainly backported fixes:

  • Doc:
    • update man page
    • add message for deprecated options
    • reinsert removed ones to print a deprecated message instead of fail (e.g. --alias-of)
    • deprecate no-aspcud
  • Pin:
    • on pinning, rebuild updated pin-depends packages reliably
    • include descr & url files on pinning 1.2 opam files
  • Sa…
Read more...

opam 2.0.2 release — OCaml Platform (Raja Boujbel - OCamlPro, Louis Gesbert - OCamlPro), Dec 12, 2018

We are pleased to announce the release of opam 2.0.2.

As sandbox scripts have been updated, don't forget to run opam init --reinit -ni to update yours.

This new version contains mainly backported fixes:

  • Doc:
    • update man page
    • add message for deprecated options
    • reinsert removed ones to print a deprecated message instead of fail (e.g. --alias-of)
    • deprecate no-aspcud
  • Pin:
    • on pinning, rebuild updated pin-depends packages reliably
    • include descr & url files on pinning 1.2 opam files
  • Sandbox:
    • handle symlink…
Read more...

MirageOS, towards a smaller and safer OS — Tarides (Romain C.), Dec 06, 2018

Presentation about MirageOS in Lambda World Cadìz on October 26th

Fixin' your automata — GaGallium (François Pottier), Dec 05, 2018

There are several ways of compiling a regular expression (RE) down to a deterministic finite-state automaton (DFA). One such way is based on Brzozowski derivatives of regular expressions. In this post, I describe a concise OCaml implementation of this transformation. This is an opportunity to illustrate the use of fix, a library that offers facilities for constructing (recursive) memoized functions and for performing least fixed point computations.

From REs to DFAs, via Brzozowski derivati…

Read more...

Frama-C 18.0 (Argon) is out. Download ithere. — Frama-C, Nov 29, 2018

Senior Haskell / Full Stack Developer at PRODA Ltd (Full-time) — Functional Jobs (FunctionalJobs.com), Nov 26, 2018

Position summary

We are looking for senior Haskell engineers to join our team in London or work remotely.

We want you to be someone who is looking to really help shape the future of the development team, have real impact on strategy, architecture and be the lead on our most important projects.

You will expand our application’s capabilities in data ingestion, data exports, data standardisation and machine learning. We work in a functional programming stack in Haskell and Elm, together wi…

Read more...

Safely typing algebraic effects — GaGallium (Nathanaël Courant), Nov 26, 2018

Last year (2017), I was following the MPRI, a research-oriented master programme in Paris. The project for the Functional programming and type systems course (taught by François Pottier, Didier Rémy, Yann Régis-Gianas and Pierre-Évariste Dagand) was to write a compiler for a tiny functional language. I extended that project with algebraic effects and a static type system checking that effects could not be unhandled. Explaining the type system of my implementation is what this post is about…

Read more...

An Introduction to Tezos RPCs: Signing Operations — OCamlPro, Nov 21, 2018

In a previous blog post, we presented the RPCs used by tezos-client to
send a transfer operation to a tezos-node. We were left with two
remaining questions:

* How to forge a binary operation, for signature
* How to sign a binary operation

In this post, we will reply to these questions. We are still assuming
a node running and waiting for RPCs on address 127.0.0.1:9731. Since we will ask this node to forge a request, we really need to trust it, as a malicious node could send a different binary tr…

Read more...

An Introduction to Tezos RPCs: a Basic Wallet — OCamlPro, Nov 15, 2018

In this technical blog post, we will briefly introduce Tezos RPCs through a simple example: we will show how the tezos-client program interacts with the tezos-node during a transfer command. Tezos RPCs are HTTP queries (GET or POST) to which tezos-node replies in JSON format. They are the only way for wallets to interact with the node. However, given the large number of RPCs accepted by the node, it is not always easy to understand which ones can be useful if you want to write a wallet. So, here…

Read more...

Parser Construction With Menhir: A Couple Appetizers — GaGallium (François Pottier), Nov 14, 2018

This post is a shameless advertisement for Menhir, a parser generator for OCaml. It illustrates Menhir’s new input syntax, which was introduced on November 13, 2018. The code fragments shown below are excerpts of valid .mly files.

Ingredients

Suppose I would like to parse and evaluate our good old friends, the arithmetic expressions. For instance, the string "(3 + 4) * 5 - 9" should be accepted and evaluated to the value 26.

I assume that I have a lexical analyzer that can chop…

Read more...

First Open-Source Release of TzScan — OCamlPro, Nov 08, 2018

In October 2017, after the Tezos ICO, OCamlPro started to work on a block explorer for Tezos. For us, it was the most important software that we could contribute to the community, after the node itself, of course. We used it internally to monitor the Tezos alphanet, until its official public release in February 2018, as TzScan. One of TzScan main goals was to make the complex DPOS consensus algorithm of Tezos easier to understand, to follow, especially for bakers who will contribute to it.  Sin…

Read more...

Liquidity Tutorial: A Game with an Oracle for Random Numbers — OCamlPro, Nov 06, 2018

A Game with an oracle

In this small tutorial, we will see how to write a chance game on the Tezos blockchain with Liquidity and a small external oracle which provides random numbers.

Principle of the game

Rules of the game are handled by a smart contract on the Tezos blockchain.

When a player decides to start a game, she must start by making a transaction (i.e. a call) to the game smart contract with a number parameter (let’s call it n) between 0 and 100 (inclusively). The amount that is s…

Read more...

Coq 8.9+beta1 is out — Coq, Nov 02, 2018

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

It features many quality-of-life improvements, including goal differences as well as numeral and custom notations. For details, see the CHANGES file.

Feedback and bug reports are extremely welcome.

forge.ocamlcore.org expected downtime on 2018-11-01 — OCamlCore Forge News (Sylvain Le Gall), Nov 01, 2018

The forge and related websites will be down for a few hours on 2018-11-01 starting at around 20:30 CEST. The previous downtime was not enough to do the full migration [1]. I will do my best to keep the downtime as short as possible. In the meantime, you can use the "static" website that has been put in place: https://forge-static.ocamlcore.org [1]: https://forge.ocamlcore.org/forum/forum.php?forum_id=963

forge.ocamlcore.org expected downtime on 2018-10-30 — OCamlCore Forge News (Sylvain Le Gall), Nov 01, 2018

The forge and related websites will be down for a few hours on 2018-10-30 starting at around 21:00 CEST. I will do my best to keep the downtime as short as possible. In the meantime, you can use the "static" website that has been put in place: https://forge-static.ocamlcore.org

Compiler Engineer — GitHub Jobs, Nov 01, 2018

Jane Street is a proprietary quantitative trading firm, focusing primarily on trading equities and equity derivatives. We use innovative technology, a scientific approach, and a deep understanding of markets to stay successful in our highly competitive field. We operate around the clock and around the globe, employing over 500 people in offices in New York, London and Hong Kong. The markets in which we trade change rapidly, but our intellectual approach changes faster still. Every day, we have …Read more...

Software Developer (Functional Programming) — GitHub Jobs, Nov 01, 2018

Software Developer Jane Street is a proprietary quantitative trading firm, focusing primarily on trading equities and equity derivatives. We use innovative technology, a scientific approach, and a deep understanding of markets to stay successful in our highly competitive field. We operate around the clock and around the globe, employing over 500 people in offices in New York, London and Hong Kong. The markets in which we trade change rapidly, but our intellectual approach changes faster still…Read more...

opam 2.0.1 is out! — OCaml Platform (Raja Boujbel - OCamlPro, Louis Gesbert - OCamlPro), Oct 24, 2018

We are pleased to announce the release of opam 2.0.1.

This new version contains mainly backported fixes, some platform-specific:

  • Cold boot for MacOS/CentOS/Alpine
  • Install checksum validation on MacOS
  • Archive extraction for OpenBSD now defaults to using gtar
  • Fix compilation of mccs on MacOS and Nix platforms
  • Do not use GNU-sed specific features in the release Makefile, to fix build on OpenBSD/FreeBSD
  • Cleaning to enable reproducible builds
  • Update configure scripts

And some opam specific:

  • git: fix git…
Read more...

ocaml-git 2.0 — Tarides (Romain C.), Oct 19, 2018

I'm very happy to announce a new major release of ocaml-git (2.0). This release is a 2-year effort to get a revamped streaming API offering a full control over memory allocation. This new version also adds production-ready implementations of the wire protocol: git push and git pull now work very reliably using the raw Git and smart HTTP protocol (SSH support will come soon). git gc is also implemented, and all of the basic bricks are now available to create Git servers. MirageOS support is a…

Read more...

OCamlPro’s TZScan grant proposal accepted by the Tezos Foundation – joint press release — OCamlPro, Oct 17, 2018

Tezos Foundation and OCamlPro joint press release – October 17, 2018

We are pleased to announce  that the Tezos Foundation has issued a grant to OCamlPro to support its work on TzScan, a block explorer for the Tezos blockchain that will be made open-source.

OCamlPro is a French company and R&D lab, focused on OCaml and blockchain development. OCamlPro, which is an active community member and contributor to Tezos, has initiated several Tezos-related projects such as TzScan and Liquidit…

Read more...

OCamlFormat 0.8 — Tarides (Guillaume P.), Oct 17, 2018

We are proud to announce the release of OCamlFormat 0.8 (available on opam). To ease the transition from the previous 0.7 release here are some highlights of the new features of this release. The full changelog is available on the project repository.

Precedence of options

In the previous version you could override command line options with .ocamlformat files configuration. 0.8 fixed this so that the OCamlFormat configuration is first established by reading .ocamlformat and .ocp-indent files:

ma…
Read more...

OCaml Workshop 2018 — Tarides (Romain C.), Sep 27, 2018

The OCaml Users and Developers Workshop brings together industrial users of OCaml with academics and hackers who are working on extending the language, type system and tools. OCaml 2018 was held on September 27th, 2018 in St. Louis, Missouri, USA, colocated with ICFP 2018.

Check Tarides' talks: RFCs, all the way down! and The OCaml Platform 1.0.

Coq 8.8.2 is out — Coq, Sep 26, 2018

The 8.8.2 release of Coq is available.

Main changes:

  • The kernel does not tolerate capture of global universes by polymorphic universe binders, fixing a soundness break (triggered only through custom plugins)
  • A PDF version of the reference manual is available once again.
  • The coq-makefile targets print-pretty-timed, print-pretty-timed-diff, and print-pretty-single-time-diff now correctly label the "before" and "after" columns, rather than swapping them.
  • The Windows installer now includes many mo…
Read more...

View older blog posts.