Blog


Authors: Adrien Champion
Date: 2021-10-14
Category: Formal Methods

Adrien Champion adrien.champion@ocamlpro.com This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. These posts broadly discusses induction as a formal verification technique, which here really means formal program verification. I will use concrete, runnabl... (Read more)

Authors: Louis Gesbert
Date: 2021-09-02
Category: Tooling

Distributing OCaml software on opam is great (if I dare say so myself), but sometimes you need to provide your tools to an audience outside of the OCaml community, or just without recompilations or in a simpler way. However, just distributing the locally generated binaries requires that the users ha... (Read more)

Date: 2021-08-04
Category: Tooling
Tags: opam

Feedback on this post is welcomed on Discuss! We are happy to announce the release of opam 2.1.0. Many new features made it in (see the pre-release changelogs or release notes for the details), but here are a few highlights. What's new in opam 2.1? Integration of system dependencies (formerly the op... (Read more)

Date: 2021-08-03
Category: Tooling
Tags: opam

Feedback on this post is welcomed on Discuss! We are pleased to announce the minor release of opam 2.0.9. This new version contains some back-ported fixes. New features Back-ported ability to load upgraded roots read-only; allows applications compiled with opam-state 2.0.9 to load a root which has b... (Read more)

Authors: Leo Boitel
Date: 2021-07-16
Category: OCaml
Tags: ocaml, flambda, fr

Au cours de discussions parmi les développeurs OCaml sur le type vide (PR#9459), certains caressaient l’idée d’annoter des fonctions avec un attribut indiquant au compilateur que la fonction devrait être triviale, et toujours renvoyer une valeur strictement équivalente à son argument. Nous ... (Read more)

Authors: Leo Boitel
Date: 2021-07-16
Category: OCaml
Tags: ocaml, flambda

In some discussions among OCaml developers around the empty type (PR#9459), some people mused about the possibility of annotating functions with an attribute telling the compiler that the function should be trivial, and always return a value strictly equivalent to its argument.Curious about the feas... (Read more)

Date: 2021-06-23
Category: Tooling
Tags: opam

Feedback on this post is welcomed on Discuss! The opam team has great pleasure in announcing opam 2.1.0~rc2! The focus since beta4 has been preparing for a world with more than one released version of opam (i.e. 2.0.x and 2.1.x). The release candidate extends CLI versioning further and, under the ho... (Read more)

Authors: OCamlPro
Date: 2021-05-06
Category: Trainings
Tags: format, tutorial

The Format module of OCaml is an extremely powerful but unfortunately often poorly used module. It combines two distinct elements: pretty-print boxes semantic tags This tutorial aims to demystify much of this module and explain the range of things that you can do with it. Read more (i... (Read more)

Authors: OCamlPro
Date: 2021-04-29
Category: Formal Methods
Tags: alt-ergo, fr

La troisième réunion annuelle du Club des utilisateurs d’Alt-Ergo a eu lieu le 1er avril ! Cette réunion annuelle est l’endroit idéal pour passer en revue les besoins de chaque partenaire concernant Alt-Ergo. Nous avons eu le plaisir de recevoir nos partenaires pour discuter de la feuille de... (Read more)

Authors: Albin Coquereau
Date: 2021-03-29
Category: Formal Methods
Tags: alt-ergo

Have you heard about our Try-Alt-Ergo website? Created in 2014 (see our blogpost), the first objective was to facilitate access to our performant SMT Solver Alt-Ergo. Try-Alt-Ergo allows you to write and run your problems in your browser without any server computation. This playground website has be... (Read more)

Date: 2021-02-08
Category: Tooling
Tags: opam

Feedback on this post is welcomed on Discuss! On behalf of the opam team, it gives me great pleasure to announce the third beta release of opam 2.1. Don’t worry, you didn’t miss beta3 - we had an issue with a configure script that caused beta2 to report as beta3 in some instances, so we skipped ... (Read more)

Date: 2021-02-08
Category: Tooling
Tags: opam

We are pleased to announce the minor release of opam 2.0.8. This new version contains some backported fixes: Critical for fish users! Don't add . to PATH. [#4078] Fix sandbox script for newer ccache versions. [#4079 and #4087] Fix sandbox crash when ~/.cache is a symlink. [#4068] User modifications ... (Read more)

Authors: Muriel, OCamlPro
Date: 2021-02-02
Category: OCamlPro

2020 at OCamlPro OCamlPro was created in 2011 to advocate the adoption of the OCaml language and formal methods in general in the industry. While building a team of highly-skilled engineers, we navigated through our expertise domains, delivering works on the OCaml language and tooling, training comp... (Read more)

Authors: Albin Coquereau
Date: 2021-01-22
Category: Formal Methods
Tags: alt-ergo

A new release of Alt-Ergo (version 2.4.0) is available. You can get it from Alt-Ergo's website. The associated opam package will be published in the next few days. This release contains some major novelties: Alt-Ergo supports incremental commands (push/pop) from the smt-lib standard. We switched co... (Read more)

Authors: Adrien Champion
Date: 2020-12-01
Category: Rust

Memthol is a visualizer and analyzer for program profiling. It works on memory dumps containing information about the size and (de)allocation date of part of the allocations performed by some execution of a program. For information regarding building memthol, features, browser compatibility… refer... (Read more)

Authors: Pierrick Couderc
Date: 2020-09-30
Category: OCaml
Tags: ocaml

This blog post and the previous one about functor packs covers two RFCs currently developed by OCamlPro and Jane Street. We previously introduced functor packs, a new feature adding the possiblity to compile packs as functors, allowing the user to implement functors as multiple source files or even ... (Read more)

Authors: Pierrick Couderc
Date: 2020-09-24
Category: OCaml
Tags: ocaml

OCamlPro has a long history of dedicated efforts to support the development of the OCaml compiler, through sponsorship or direct contributions from Flambda Team. An important one is the Flambda intermediate representation designed for optimizations, and in the future its next iteration Flambda 2. Th... (Read more)

Date: 2020-06-09
Category: Blockchains

By OCamlPro & Origin Labs Writing smart contacts may often be a burdensome task, as you need to learn a new language for each blockchain you target. In the Dune Network team, we are willing to provide as many possibilities as possible for developers to thrive in an accessible and secure f... (Read more)

Authors: Aurore Dombry
Date: 2020-06-05
Category: OCamlPro

Sylvain Conchon vient de rejoindre OCamlPro en tant que Chief Scientific Officer Méthodes Formelles. Professeur à l’Université Paris-Saclay, il travaille dans le domaine de la démonstration automatique pour la preuve de programmes et le model checking pour systèmes paramétrés. Il est aussi ... (Read more)

Authors: Aurore Dombry
Date: 2020-06-05
Category: OCamlPro

On April 2020, Sylvain Conchon joined the OCamlPro team as our Chief Scientific Officer on Formal Methods. Sylvain is a professor at University Paris-Saclay, he has also been teaching OCaml in universities for about 20 years. He is the co-author of Apprendre à programmer avec OCaml with Jean-Christ... (Read more)

Authors: OCamlPro
Date: 2020-06-01
Category: Trainings

Article écrit par Mattias. Le module Format d’OCaml est un module extrêmement puissant mais malheureusement très mal utilisé. Il combine notamment deux éléments distincts : les boîtes d’impression élégante les tags sémantiques Le présent article vise à démystifier une grande partie ... (Read more)

Authors: David Declerck
Date: 2020-05-19
Category: Blockchains

This article is cross-posted on Origin Labs’ Dune Network blog We are happy to announce the first release of our Solidity parser, written in OCaml using Menhir. This is a joint effort with Origin Labs, the company dedicated to blockchain challenges, to implement a full interpreter fo... (Read more)

Date: 2020-04-21
Category: Tooling
Tags: opam

We are happy to announce a alpha for opam 2.1.0, one year and a half in the making after the release of 2.0.0. Many new features made it in (see the complete changelog or release note for the details), but here are a few highlights of this release. Release highlights The two following features have ... (Read more)

Date: 2020-04-21
Category: Tooling
Tags: opam

We are pleased to announce the minor release of opam 2.0.7. This new version contains backported small fixes: Escape Windows paths on manpages [#4129 @AltGr @rjbou] Fix opam installer opam file [#4058 @rjbou] Fix various warnings [#4132 @rjbou @AltGr - fix #4100] Fix dune 2.5.0 promote-install-files... (Read more)

Authors: Thomas Blanc
Date: 2020-03-23
Category: OCaml
Tags: best fit, fr, gc, ocaml

An in-depth Look at OCaml’s new "Best-fit" Garbage Collector Strategy](/blog/2020_03_23_in_depth_look_at_best_fit_gc) Le GC d’OCaml oeuvre discrètement à l’efficacité de vos allocations mémoire. Tel un héros de l’ombre, il reste méconnu de la plupart des hackers OCaml. Avec l’arrivé... (Read more)

Authors: Thomas Blanc
Date: 2020-03-23
Category: OCaml
Tags: ocaml, highlights, GC

An in-depth Look at OCaml’s new "Best-fit" Garbage Collector Strategy 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:... (Read more)

Authors: Louis Gesbert
Date: 2020-03-16
Category: Tooling

We are happy to announce that our venerable "TryOCaml" 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 lates... (Read more)

Authors: Aurore Dromby
Date: 2020-03-03
Category: Formal Methods
Tags: alt-ergo, fr

Alt-Ergo meeting Logo Alt-Ergo La deuxième réunion annuelle du Club des utilisateurs d’Alt-Ergo a eu lieu à la mi-février ! Notre réunion annuelle est l’endroit idéal pour passer en revue les besoins de chaque partenaire concernant Alt-Ergo. Cette année, nous avons eu le plaisir de recevo... (Read more)

Authors: OCamlPro
Date: 2020-02-04
Category: OCamlPro

2019 at OCamlPro OCamlPro a pour ambition d’aider les industriels dans leur adoption du langage OCaml et des méthodes formelles. L’entreprise est passée d’1 à 21 personnes et est restée fidèle à cet objectif. L’année 2019 chez OCamlPro a été très animée, et le nombre de réalisati... (Read more)

Date: 2020-01-16
Category: Tooling
Tags: opam

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 warni... (Read more)

Authors: Thomas Blanc
Date: 2020-01-10
Category: Tooling

The Opam 2.0 cheatsheet, with a new theme! Earlier, we dusted-off our Language and Stdlib cheatsheets, for teachers and students. With more time, we managed to design an Opam 2.0 cheat-sheet we are proud of. It is organized into two pages: The everyday average Opam use: Installation, Configuration, ... (Read more)

Authors: OCamlPro
Date: 2019-09-25
Category: Trainings

In our endeavour to encourage professional programmers to understand and use OCaml, OCamlPro will be giving two training sessions, in French, in our Paris offices: OCaml Beginner course for professional programmers (5-6 Nov) OCaml Expertise (7-8 Nov). The "Expert" OCaml course is for already experie... (Read more)

Authors: OCamlPro
Date: 2019-09-25
Category: Trainings

OCamlPro lance un cycle de formations régulières à OCaml, en français, dans ses locaux parisiens (métro Alésia). La première session aura lieu début novembre 2019, avec 2 formations: Formation débutant : passer à OCaml (5-6 novembre) Formation expert : approfondir sa maîtrise du langage (... (Read more)

Authors: Thomas Blanc
Date: 2019-09-20
Category: OCaml

A look back on OCaml since 2011 As you already know if you’ve read our last blogpost, we have updated our OCaml cheat sheets starting with the language and stdlib ones. We know some of you have students to initiate in September and we wanted these sheets to be ready for the start of the school yea... (Read more)

Authors: Thomas Blanc
Date: 2019-09-13
Category: OCaml

In 2011, we shared several cheat sheets for OCaml. Cheat sheets are helpful to refer to, as an overview of the documentation when you are programming, especially when you’re starting in a new language. They are meant to be printed and pinned on your wall, or to be kept in handy on a spare screen. ... (Read more)

Authors: Thomas Blanc
Date: 2019-09-13
Category: OCaml

Les mémentos (cheat-sheets) OCaml lang et OCaml stdlib partagés par OCamlPro en 2011 ont été mis à jour pour OCaml 4.08. Le langage OCaml OCaml Standard Library Si vous souhaitez contribuer des améliorations: sources sur GitHub. En savoir plus : Updated Cheat Sheets: OCaml Language and OCaml S... (Read more)

Authors: Vincent Laviron
Date: 2019-08-30
Category: OCaml

The OCaml compiler team at OCamlPro is happy to present some of the work recently done jointly with JaneStreet's team. A lot of work has been done towards a new framework for optimizations in the compiler, called Flambda2, aiming at solving the shortcomings that became apparent in the Flambda optimi... (Read more)

Authors: Vincent Laviron
Date: 2019-08-30
Category: OCaml

Nous sommes heureux de présenter certains travaux en cours sur le compilateur OCaml, travaux menés en étroite collaboration avec notre partenaire et client Janestreet. Un travail conséquent a été fait pour aboutir à un nouveau framework d’optimisation du compilateur, appelé Flambda2, dont ... (Read more)

Date: 2019-07-23
Category: Tooling
Tags: opam, fr

Nous sommes fiers d’annoncer la release (mineure) d’ opam 2.0.5. Cette nouvelle version contient des mises à jours de build et correctifs. Plus d’information About OCamlPro: OCamlPro is a R&D lab founded in 2011, with the mission to help industrial users benefit from state-of-the art programm... (Read more)

Date: 2019-07-11
Category: Tooling
Tags: opam

We are pleased to announce the minor release of opam 2.0.5. This new version contains build update and small fixes: Bump src_ext Dune to 1.6.3, allows compilation with OCaml 4.08.0. [#3887 @dra27] Support Dune 1.7.0 and later [#3888 @dra27 - fix #3870] Bump the ocaml_mccs lib-ext, to include latest ... (Read more)

Authors: Albin Coquereau
Date: 2019-07-10
Category: Formal Methods
Tags: alt-ergo, fr

Les résultats de la compétition SMT-COMP 2019 ont été publiés au whorkshop  SMT de la 22e conférence SAT. Nous étions fiers d’y participer pour la deuxième année consécutive, surtout depuis qu’Alt-Ergo prend en charge le standard SMT-LIB 2. Alt-Ergo est un SAT solveur open-source main... (Read more)

Authors: Albin Coquereau
Date: 2019-07-10
Category: Formal Methods
Tags: alt-ergo

Les résultats de la compétition SMT-COMP 2019 ont été publiés au whorkshop SMT de la 22e conférence SAT. Nous étions fiers d’y participer pour la deuxième année consécutive, surtout depuis qu’Alt-Ergo prend en charge le standard SMT-LIB 2. Alt-Ergo est un SAT solveur open-source mainte... (Read more)

Authors: Albin Coquereau
Date: 2019-07-09
Category: Formal Methods
Tags: alt-ergo

The results of the SMT-COMP 2019 were released a few days ago at the SMT whorkshop during the 22nd SAT conference. We were glad to participate in this competition for the second year in a row, especially as Alt-Ergo now supports the SMT-LIB 2 standard. Alt-Ergo is an open-source SAT-solver maintaine... (Read more)

Date: 2019-04-29
Category: Blockchains

OCamlPro started working on blockchains in 2014, when Arthur Breitman came to us with an initial idea to develop the Tezos ledger. The idea was very challenging with a lot of innovations. So, we collaborated with him to write a specification, and to turn the specification into OCaml code. Since then... (Read more)

Date: 2019-04-10
Category: Tooling
Tags: opam

We are pleased to announce the release of opam 2.0.4. This new version contains some backported fixes: Sandboxing on macOS: considering the possibility that TMPDIR is unset [#3597 @herbelin - fix #3576] display: Fix opam config var display, aligned on opam config list [#3723 @rjbou - rel. #3717] pin... (Read more)

Authors: Louis Gesbert
Date: 2019-03-12
Category: Tooling
Tags: opam

This blog post looks back on some of the improvements in opam 2.0, and gives tips on the new workflows available. Package development environment management Opam 2.0 has been vastly improved to handle locally defined packages. Assuming you have a project ~/projects/foo, defining two packages foo-lib... (Read more)

Authors: Çagdas Bozman
Date: 2019-03-09
Category: Blockchains

Nous sommes fiers d'annoncer la release de la première version majeure de Liquidity, le langage de smart contracts et son outillage. Parmi les fonctions phares : multiples points d'entrée, système de contrats modulaire, polymorphisme et inférence de type, syntaxe ReasonML pour une plus grande ad... (Read more)

Authors: Alain Mebsout
Date: 2019-03-08
Category: Blockchains
Tags: liquidity

Liquidity version 1.0 We are pleased to announce the release of the first major version of the Liquidity smart-contract language and associated tools. Some of the highlights of this version are detailed below. Multiple Entry Points In the previous versions of Liquidity, smart contracts were limited ... (Read more)

Authors: Çagdas Bozman
Date: 2019-03-05
Category: Blockchains
Tags: tezos

Smart contracts calls already provide a built-in authentication mechanism as transactions (i.e. call operations) are cryptographically signed by the sender of the transaction. This is a guarantee on which programs can rely. However, sometimes you may want more involved or flexible authentication sch... (Read more)

Authors: Adrien Champion
Date: 2019-03-05
Category: Blockchains
Tags: techelson, fr

Nous sommes fiers d’annoncer la première release de Techelson, moteur d’exécution de tests pour Michelson. Les programmeurs Liquidity peuvent également l’utiliser. Voir Techelson, a test execution engine for Michelson. About OCamlPro: OCamlPro is a R&D lab founded in 2011, with the mission ... (Read more)

Date: 2019-02-11
Category: Formal Methods
Tags: alt-ergo

After the hard work done on the integration of floating-point arithmetic reasoning two years ago, 2018 is the year of polymorphic SMT2 support and efficient SAT solving for Alt-Ergo. In this post, we recap the main novelties last year, and we announce the first Alt-Ergo Users’ Club meeting. An SMT... (Read more)

Date: 2019-02-04
Category: Blockchains

Ce troisième article consacré à l’amélioration du stockage dans Tezos fait suite à l’annonce de la mise à disposition d’une image docker pour les beta testeurs souhaitant essayer notre système de stockage et garbage collector. Voir Improving Tezos Storage : Gitlab branch for testers Abo... (Read more)

Date: 2019-02-04
Category: Blockchains

This article is the third post of a series of posts on improving Tezos storage. In our previous post, we announced the availability of a docker image for beta testers, wanting to test our storage and garbage collector. Today, we are glad to announce that we rebased our code on the latest version of ... (Read more)

Authors: Muriel, OCamlPro
Date: 2019-02-04
Category: OCamlPro

2019 at OCamlPro 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... (Read more)

Date: 2019-01-31
Category: Blockchains
Tags: tezos, OCamlPro, fr

Tezos est aujourd’hui un projet open source, un réseau international développé par des équipes sur plus de cinq continents. Dans la genèse du projet, l’entreprise française OCamlPro, qui développe encore aujourd’hui de nombreux projets liés à Tezos (TZscan, Liquidity, etc.), a joué u... (Read more)

Date: 2019-01-30
Category: Blockchains

In a previous post, we presented some work that we did to improve the quantity of storage used by the Tezos node. Our post generated a lot of comments, in which upcoming features such as garbage collection and pruning were introduced. It also motivated us to keep working on this (hot) topic, and we ... (Read more)

Authors: Arthur Breitman
Date: 2019-01-29
Category: Blockchains

A reflection on the new year… Today, Tezos is a global network and an open source project with developers spanning over five continents. In the inception of this project, the French company OCamlPro which, to this day, stills develops numerous projects around Tezos, played a particularly important... (Read more)

Date: 2019-01-28
Category: Tooling
Tags: opam

We are pleased to announce the release of opam 2.0.3. This new version contains some backported fixes: Fix manpage remaining $ (OPAMBESTEFFORT) Fix OPAMROOTISOK handling Regenerate missing environment file Installation instructions (unchanged): From binaries: run or download manually from the Github... (Read more)

Date: 2019-01-15
Category: Blockchains

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 ve... (Read more)

Date: 2018-12-12
Category: Tooling
Tags: opam

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 deprecat... (Read more)

Date: 2018-11-21
Category: Blockchains

In a previous blogpost, 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 assum... (Read more)

Date: 2018-11-20
Category: Blockchains
Tags: tezos, rpc, fr

Dans cet article technique, nous introduisons brièvement les RPCs dans Tezos à travers un exemple simple montrant comment le client Tezos interagit avec le noeud lors d’une instruction de transfert. Les RPCs de Tezos sont des requêtes HTTP (GET ou POST) auxquelles les noeuds Tezos répondent da... (Read more)

Date: 2018-11-15
Category: Blockchains

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 f... (Read more)

Date: 2018-11-08
Category: Blockchains

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... (Read more)

Authors: Alain Mebsout
Date: 2018-11-06
Category: Blockchains
Tags: liquidity, game

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 decide... (Read more)

Date: 2018-10-24
Category: Tooling
Tags: opam

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 p... (Read more)

Authors: Muriel
Date: 2018-10-17
Category: Blockchains

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, f... (Read more)

Date: 2018-09-19
Category: Tooling
Tags: opam

We are happy to announce the final release of opam 2.0.0. A few weeks ago, we released a last release candidate to be later promoted to 2.0.0, synchronised with the opam package repository upgrade. You are encouraged to update as soon as you see fit, to continue to get package updates: opam 2.0.0 su... (Read more)

Date: 2018-08-02
Category: Tooling
Tags: opam

A few days ago, we released opam 2.0.0~rc4, and explained that this final release candidate was expected be promoted to 2.0.0, in sync with an upgrade to the opam package repository. So here are the details about this! If you are an opam user, and don't maintain opam packages You are encouraged to u... (Read more)

Date: 2018-07-26
Category: Tooling
Tags: opam

We are happy to announce the opam 2.0.0 final release candidate! 🍾 This release features a few bugfixes over Release Candidate 3. It will be promoted to 2.0.0 proper within a few weeks, when the official repository format switches from 1.2.0 to 2.0.0. After that date, updates to the 1.2.0 reposit... (Read more)

Authors: Çagdas Bozman
Date: 2018-07-20
Category: Blockchains

OCamlPro is pleased to announce the latest update of TZScan (https://tzscan.io), its Tezos block explorer to ease the use of the Tezos network. TzScan is now ready for the protocol update scheduled for tomorrow. In addition to some minor bugfixes, the main novelties are: Displaying of obtained and e... (Read more)

Date: 2018-06-22
Category: Tooling
Tags: opam

We are pleased to announce the release of a third release candidate for opam 2.0.0. This one is expected to be the last before 2.0.0 comes out. Changes since the 2.0.0~rc2 are, as expected, mostly fixes. We deemed it useful, however, to bring in the following: a new command opam switch link that all... (Read more)

Authors: Louis Gesbert
Date: 2018-05-22
Category: Tooling
Tags: opam

We are pleased to announce the release of a second release candidate for opam 2.0.0. This new version brings us very close to a final 2.0.0 release, and in addition to many fixes, features big performance enhancements over the RC1. Among the new features, we have squeezed in full sandboxing of packa... (Read more)

Date: 2018-04-23
Category: Formal Methods
Tags: alt-ergo

A new release of Alt-Ergo (version 2.2.0) is available. You can get it from Alt-Ergo's website. An OPAM package for it will be published in the next few days. The major novelty of this release is a new experimental front-end that supports the SMT-LIB 2 language, extended prenex polymorphism. This ex... (Read more)

Authors: Michael Laporte
Date: 2018-04-13
Category: Blockchains

As we are preparing to work on the Tezos Protocol, we're still actively keeping the pace on the block explorer TZScan.io, adding cool information for baking accounts. We'd like to allow people to see who is contributing to the network and to understand the distribution of rolls, rights, etc. For sta... (Read more)

Authors: chambart
Date: 2018-04-01
Category: OCaml
Tags: OCaml

This time of the year is, just like Christmas time, a time for laughs and magic... although the magic we are talking about, in the OCaml community, is not exactly nice, nor beautiful. Let's say that we are somehow akin to many religions: we know magic does exist , but that it is satanic and shouldn'... (Read more)

Date: 2018-03-14
Category: Formal Methods
Tags: alt-ergo

A new release of Alt-Ergo (version 2.1.0) is available on Alt-Ergo's website: https://alt-ergo.ocamlpro.com/#releases. An OPAM package for it will be published soon. In this release, we mainly improved the CDCL-based SAT solver to get performances similar to/better than the old Tableaux-like SAT. Th... (Read more)

Authors: Çagdas Bozman
Date: 2018-03-14
Category: Blockchains

Update - TZScan.io can now work on top of the zeronet (zeronet.tzscan.io), we hope it can help the developers community monitor the network. You can now switch between the alphanet & zeronet networks! OCamlPro is pleased to announce an update of TzScan (https://tzscan.io), its Tezos block explorer t... (Read more)

Authors: Çagdas Bozman
Date: 2018-02-14
Category: Blockchains

OCamlPro is proud to release a first version of TzScan, its Tezos block explorer to ease the use of the Tezos network. What TzScan can do for you : Several charts on blocks, operations, network, volumes, fees, and more, Marketcap and Futures/IOU prices from coinmarket.com, Blocks, operations, accoun... (Read more)

Authors: Çagdas Bozman
Date: 2018-02-08
Category: Blockchains

As a tradition, we took part in this year's Journées Francophones des Langages Applicatifs (JFLA 2018) that was chaired by LRI's Sylvie Boldo and hosted in Banyuls the last week of January. That was a nice opportunity to present a live demo of a multisignature smart-contract entirely written in th... (Read more)

Authors: Louis Gesbert
Date: 2018-02-02
Category: Tooling
Tags: opam

We are pleased to announce a first release candidate for the long-awaited opam 2.0.0. A lot of polishing has been done since the last beta, including tweaks to the built-in solver, allowing in-source package definitions to be gathered in an opam/ directory, and much more. With all of the 2.0.0 featu... (Read more)

Authors: Muriel
Date: 2018-01-15
Category: OCamlPro

Since 2017 is just over, now is probably the best time to review what happened during this hectic year at OCamlPro… Here are our big 2017 achievements, in the world of blockchains (the Liquidity smart contract language, Tezos and the Tezos ICO etc.), of OCaml (with OPAM 2, flambda 2 etc.), and of ... (Read more)

Authors: Louis Gesbert
Date: 2017-11-27
Category: Tooling
Tags: opam

After a few more months brewing, we are pleased to announce a new beta release of opam. With this new milestone, opam is reaching feature-freeze, with an expected 2.0.0 by the beginning of next year. This version brings many new features, stability fixes, and big improvements to the local developmen... (Read more)

Authors: Louis Gesbert
Date: 2017-05-11
Category: Tooling
Tags: opam

This blog will cover yet another aspect of the improvements opam 2.0 has over opam 1.2. I may be a little more technical than previous issues, as it covers a feature directed specifically at packagers and repository maintainers, and regarding the package definition format. Specifying dependencies in... (Read more)

Authors: Louis Gesbert
Date: 2017-05-04
Category: Tooling
Tags: opam

After the opam build feature was announced followed a lot of discussions, mainly having to do with its interface, and misleading name. The base features it offered, though, were still widely asked for: a way to work directly with the project in the current directory, assuming it contains definitions... (Read more)

Authors: Louis Gesbert
Date: 2017-04-27
Category: Tooling
Tags: opam

Among the areas we wanted to improve on for opam 2.0 was the handling of switches. In opam 1.2, they are simply accessed by a name (the OCaml version by default), and are always stored into ~/.opam/. This is fine, but can get a bit cumbersome when many switches are in presence, as there is no ... (Read more)

Authors: chambart
Date: 2017-04-01
Category: OCaml
Tags: OCaml

As you may have noticed, on the begining of April I have some urge to write something technical about some deeply specific point of OCaml. This time I'd like to tackle that through sudoku. It appeard that Sudoku is of great importance considering the number of posts explaining how to write a solver.... (Read more)

Authors: Louis Gesbert
Date: 2017-03-16
Category: Tooling
Tags: opam

UPDATE: after discussions following this post, this feature was abandoned with the interface presented below. See this post for the details and the new interface! The new opam 2.0 release, currently in beta, introduces several new features. This post gets into some detail on the new opam build comma... (Read more)

Authors: Louis Gesbert
Date: 2017-02-09
Category: Tooling
Tags: opam

UPDATE (2017-02-14): A beta2 is online, which fixes issues and performance of the opam build command. Get the new binaries, or recompile the opam-devel package and replace the previous binary. We are pleased to announce that the beta release of opam 2.0 is now live! You can try it already, bootstrap... (Read more)

Authors: Louis Gesbert
Date: 2016-11-21
Category: Tooling
Tags: opam

opam-lib 1.3 The package for opam-lib version 1.3 has just been released in the official opam repository. There is no release of opam with version 1.3, but this is an intermediate version of the library that retains compatibility of the file formats with 1.2.2. The purpose of this release is twofold... (Read more)

Date: 2016-11-21
Category: Formal Methods
Tags: alt-ergo

We have recently released a new (public up-to-date) version of Alt-Ergo. We focus in this article on its main new feature: experimental support for models generation. This work has been done with Frédéric Lang, an intern at OCamlPro from February to July 2016. The idea behind models generation The... (Read more)

Authors: Louis Gesbert
Date: 2016-09-20
Category: Tooling
Tags: opam

We are pleased to announce a preview release for opam 2.0, with over 700 patches since 1.2.2. Version 2.0~alpha4 has just been released, and is ready to be more widely tested. This version brings many new features and changes, the most notable one being that OCaml compiler packages are no longer spe... (Read more)

Authors: chambart
Date: 2016-04-01
Category: OCaml
Tags: OCaml

As you may know, there is a subset of Javascript that compiles efficiently to assembly used as backend of various compilers including a C compiler like emscripten. We'd like to present you in the same spirit how never to allocate in OCaml. Before starting to write anything, we must know how to find ... (Read more)

Date: 2015-06-05
Category: Tooling
Tags: opam

NOTE (September 2016): updated proposal from OCaml 2016 workshop is available, including links to prototype implementation. This is an initial proposal on signing the OPAM repository. Comments and discussion are expected on the platform mailing-list. The purpose of this proposal is to enable a secur... (Read more)

Authors: Çagdas Bozman
Date: 2015-05-18
Category: Tooling

In this blog post, we explain how ocp-memprof helped us identify a piece of code in Alt-Ergo that needed to be improved. Simply put, a function that merges two maps was performing a lot of unnecessary allocations, negatively impacting the garbage collector's activity. A simple patch allowed us to pr... (Read more)

Authors: Louis Gesbert
Date: 2015-05-07
Category: Tooling
Tags: opam

OPAM 1.2.2 has just been released. This fixes a few issues over 1.2.1 and brings a couple of improvements, in particular better use of the solver to keep the installation as up-to-date as possible even when the latest version of a package can not be installed. Upgrade from 1.2.1 (or earlier) See the... (Read more)

Authors: Çagdas Bozman
Date: 2015-04-13
Category: Tooling

A few months ago, a memory leak in the Scanf.fscanf function of OCaml’s standard library has been reported on the OCaml mailing list. The following “minimal” example reproduces this misbehavior: Let us see how to identify the origin of the leak and fix it with our OCaml memory profiler. Instal... (Read more)

Authors: Louis Gesbert
Date: 2015-03-18
Category: Tooling
Tags: opam

OPAM 1.2.1 has just been released. This patch version brings a number of fixes and improvements over 1.2.0, without breaking compatibility. Upgrade from 1.2.0 (or earlier) See the normal installation instructions: you should generally pick up the packages from the same origin as you did for the last... (Read more)

Authors: Çagdas Bozman
Date: 2015-03-04
Category: Tooling

In this blog post, we went on the hunt of memory leaks in Cumulus by using our memory profiler: ocp-memprof. Cumulus is a feed aggregator based on Eliom, a framework for programming web sites and client/server web applications, part of the Ocsigen Project. First, run and get the memory snapshots To ... (Read more)

Date: 2015-01-29
Category: Formal Methods

altergo logo After the public release of Alt-Ergo 0.99.1 last December, it's time to announce a new major private version (1.00) of our SMT solver. As usual: we freely provide a JavaScript version on Alt-Ergo's website we provide a private access to our internal repositories for academia users and o... (Read more)

Date: 2014-12-18
Category: Tooling
Tags: opam

The new pinning feature of OPAM 1.2 enables new interesting workflows for your day-to-day development in OCaml projects. I will briefly describe one of them here: simplifying continuous testing with Travis CI and GitHub. Creating an opam file As explained in the previous post, adding an opam file at... (Read more)

Authors: Louis Gesbert
Date: 2014-10-23
Category: Tooling
Tags: opam

We are very proud to announce the availability of OPAM 1.2.0. Upgrade from 1.1 Simply follow the usual instructions, using your preferred method (package from your distribution, binary, source, etc.) as documented on the homepage. NOTE: There are small changes to the internal repository format (~/.o... (Read more)

Authors: Louis Gesbert
Date: 2014-08-19
Category: Tooling
Tags: opam

Most package managers support some pin functionality to ensure that a given package remains at a particular version without being upgraded. The stable OPAM 1.1 already supported this by allowing any existing package to be pinned to a target, which could be a specific released version, a local filesy... (Read more)

Date: 2014-08-14
Category: Tooling
Tags: opam

It has only been 18 months since the first release of OPAM, but it is already difficult to remember a time when we did OCaml development without it. OPAM has helped bring together much of the open-source code in the OCaml community under a single umbrella, making it easier to discover, depend on, a... (Read more)

Authors: Çagdas Bozman
Date: 2014-07-16
Category: OCamlPro

Here is a short report on some of our public activities in May and June 2014. Towards OPAM 1.2 After a lot of discussions and work on OPAM itself, we are now getting to a clear workflow for OCaml developpers and packagers: the preliminary document for OPAM 1.2 is available here. The idea is that you... (Read more)

Date: 2014-07-15
Category: Formal Methods

Recently, we worked on an online Javascript-based serverless version of the Alt-Ergo SMT solver. In what follows, we will explain the principle of this version of Alt-Ergo, show how it can be used on a realistic example and compare its performances with bytecode and native binaries of Alt-Ergo. Comp... (Read more)

Authors: Çagdas Bozman
Date: 2014-05-20
Category: OCamlPro

Here is a short report on some of our activities in April 2014, and a short analysis of OCaml evolution since its first release. OPAM Improvements We're still working on release 1.2. It was decided to include quite a few new features in this release, which delayed it a little bit since we want to be... (Read more)

Authors: Çagdas Bozman
Date: 2014-04-01
Category: OCaml

OCaml 4.01 with its new feature to disambiguate constructors allows to do a nice trick: a simple and generic syntax extension that allows to define your own syntax without having to write complicated parsetree transformers. We propose an implementation in the form of a ppx rewriter. it does only a s... (Read more)

Authors: Çagdas Bozman
Date: 2014-03-05
Category: OCamlPro

Here is a short report of some of our activities in February 2014 ! Displaying what OPAM is doing After releasing version 1.1.1, we have been very busy preparing the next big things for OPAM. We have also steadily been improving stability and usability, with a focus on friendly messages: for example... (Read more)

Authors: Çagdas Bozman
Date: 2014-02-05
Category: OCamlPro

Here is a short report of some of our activities in last December and January ! A New Intel Backend for ocamlopt With the support of LexiFi, we started working on a new Intel backend for the ocamlopt native code compiler. Currently, there are four Intel backends in ocamlopt: amd64/emit.mlp, amd64/em... (Read more)

Authors: Louis Gesbert
Date: 2014-01-29
Category: Tooling
Tags: opam

We are proud to announce that OPAM 1.1.1 has just been released. This minor release features mostly stability and UI/doc improvements over OPAM 1.1.0, but also focuses on improving the API and tools to be a better base for the platform (functions for opam-doc, interface with tools like opamfu and op... (Read more)

Date: 2013-12-03
Category: OCaml
Tags: ocaml, tooling

New Team Members We are pleased to welcome three new members in our OCamlPro team since the beginning of November: Benjamin Canou started working at OCamlPro on the Richelieu project, an effort to bring better safety and performance to the Scilab language. He is in charge of a type inference algorit... (Read more)

Date: 2013-11-08
Category: Tooling
Tags: opam

After a while staged as RC, we are proud to announce the final release of OPAM 1.1.0! Thanks again to those who have helped testing and fixing the last few issues. Important note The repository format has been improved with incompatible new features; to account for this, the new repository is now ho... (Read more)

Authors: Çagdas Bozman
Date: 2013-11-01
Category: OCamlPro
Tags: highlights

Here is a short report of our activities in September-October 2013. OCamlPro at OCaml’2013 in Boston We were very happy to participate to OCaml’2013, in Boston. The event was a great success, with a lot of interesting talks and many participants. It was a nice opportunity for us to present some ... (Read more)

Authors: Louis Gesbert
Date: 2013-10-14
Category: Tooling
Tags: opam

OPAM 1.1.0 is ready, and we are shipping a release candidate for packagers and all interested to try it out. This version features several bug-fixes over the September beta release, and quite a few stability and usability improvements. Thanks to all beta-testers who have taken the time to file repor... (Read more)

Date: 2013-10-02
Category: Formal Methods
Tags: alt-ergo

As announced in a previous post, I joined OCamlPro at the beginning of September and I started working on Alt-Ergo. Here is a report presenting the tool and the work we have done during the two last months. Alt-Ergo at a Glance Alt-Ergo is an open source automatic theorem prover based on SMT technol... (Read more)

Date: 2013-09-20
Category: Tooling
Tags: opam

We are very happy to announce the beta release of OPAM version 1.1.0! OPAM is a source-based package manager for OCaml. It supports multiple simultaneous compiler installations, flexible package constraints, and a Git-friendly development workflow which. OPAM is edited and maintained by OCamlPro, wi... (Read more)

Authors: Çagdas Bozman
Date: 2013-09-04
Category: OCamlPro
Tags: highlights

Here is a short report on the different projects we have been working on in August. News from OCamlPro Compiler Optimizations After our reports on better inlining have raised big expectations, we have been working hard on fixing the few remaining bugs. An enhanced alias/constant analysis was added, ... (Read more)

Authors: Çagdas Bozman
Date: 2013-08-05
Category: OCamlPro

Once again, here is the summary of our activities for last month. The highlight this month is the release of ocaml-top, an interactive editor for education which works well under Windows and that we hope professors all around the world will use to teach OCaml to their students. We are also continuyi... (Read more)

Authors: Chambart
Date: 2013-07-11
Category: OCaml

As announced some time ago, I am working on a new intermediate language within the OCaml compiler to improve its inlining strategy. After some time of bug squashing, I prepared a testable version of the patchset, available either on Github (branch flambda_experiments), or through OPAM, in the follow... (Read more)

Authors: Çagdas Bozman
Date: 2013-07-01
Category: OCamlPro

It is time to give a brief summary of our recent activities. As usual, our contributions were focused on three main objectives: make the OCaml compiler faster and easier to use; make the OCaml developers more efficient by releasing new development tools and improving editor supports; organize and pa... (Read more)

Authors: chambart
Date: 2013-05-24
Category: OCaml

Doing the compiler's work Working at OCamlPro may have some drawbacks. I spend a lot of time hacking the OCaml compiler. Hence when I write some code, I have a good glimpse of what the generated assembly will look like. This is nice when I want to write performance sensitive code, but as I usually w... (Read more)

Authors: Çagdas Bozman
Date: 2013-04-22
Category: OCamlPro

This post aims at summarizing the activities of OCamlPro for the past month. As usual, we worked in three main areas: the OCaml toolchain, development tools for OCaml and R&D projects. The toolchain Our multi-runtime implementation of OCaml had gained stability. Luca fixed a lot of low-level bugs in... (Read more)

Authors: Çagdas Bozman
Date: 2013-04-02
Category: Tooling

Last week, I was bored doing some paperwork, so I decided to hack a little to relieve my mind... Looking for a GUI Framework for OCaml Beginners Some time ago, at OCamlPro, we had discussed the fact that OCaml was lacking more GUI frameworks. Lablgtk is powerful, but I don’t like it (and I expect ... (Read more)

Authors: Louis Gesbert
Date: 2013-03-18
Category: Tooling

Since our last activity report we have released the first stable versions of two projects: OPAM, an installation manager for OCaml source packages, and ocp-indent, an indentation tool. We have already described the basics of OPAM in two precedent blog posts, so today we will focus on the release of ... (Read more)

Date: 2013-03-15
Category: Tooling
Tags: opam

I am very happy to announce the first official release of OPAM! Many of you already know and use OPAM so I won't be long. Please read beta-release-of-opam for a longer description. 1.0.0 fixes many bugs and add few new features to the previously announced beta-release. The most visible new feature, ... (Read more)

Authors: Çagdas Bozman
Date: 2013-02-18
Category: OCamlPro

From the early days of OCamlPro, people have been curious about our plans; they were asking how we worked at OCamlPro and what we were doing exactly. Now that we have started releasing projects more regularly, these questions come again. They are very reasonable questions, and have resolved to be mo... (Read more)

Authors: Louis Gesbert
Date: 2013-01-17
Category: Tooling
Tags: beta, release

OPAM is a source-based package manager for OCaml. It supports multiple simultaneous compiler installations, flexible package constraints, and a Git-friendly development workflow. I have recently announced the beta-release of OPAM on the caml-list, and this blog post introduces the basics to new OPAM... (Read more)

Date: 2012-08-20
Category: OCaml
Tags: ocaml, tooling

OCaml 4.00.0 has been released on July 27, 2012. For the first time, the new OCaml includes some of the work we have been doing during the last year. In this article, I will present our main contributions, mostly funded by Jane Street and Lexifi. Binary Annotations for Advanced Development Tools OCa... (Read more)

Authors: Çagdas Bozman
Date: 2012-08-08
Category: OCaml
Tags: ocaml, tooling

We have recently worked on modifying the OCaml system to be able to profile OCaml code on Linux amd64 systems, using the processor performance counters now supported by stable kernels. This page presents this work, funded by Jane Street. The patch is provided for OCaml version 4.00.0. If you need it... (Read more)

Date: 2011-08-10
Category: OCaml
Tags: ocaml, tooling

We have recently worked on modifying the OCaml system to be able to pack a set of modules within a functor, parameterized on some signatures. This page presents this work, funded by Jane Street. All the patches on this page are provided for OCaml version 3.12.1. Packing Functors Installation of the ... (Read more)

Date: 2011-06-23
Category: Tooling

Recently, I have been experimenting wiht OCaml / MSVC running on Windows 7 64bit. I have mainly followed what the OCaml’s README.win32 was saying and I learned some NSIS tricks. The result of this experiment is the following two (rather big) windows binaries : ocaml-trunk-64-installer.exe (92 MB) ... (Read more)

Date: 2011-06-03
Category: Tooling

When you are beginning in a new programming language, it is sometimes helpful to have an overview of the documentation, that you can pin on your wall and easily have a look at it while you are programming. Since we couldn’t find such Cheat Sheets, we decided to start writting our own cheat sheets ... (Read more)

Date: 2011-05-06
Category: Tooling

You will need OCaml 3.11.2 installed on a i686 linux computer. The archive contains: libcamlrun-linux-i686.a ocamlrun-linux-i686 Makefile README The Makefile has two targets: sudo make install will save /usr/bin/ocamlrun and /usr/lib/ocaml/libcamlrun.a in the current directory and replace them with ... (Read more)

Authors: Adrien Champion
Date: 2010-03-05
Category: Blockchains
Tags: michelson

We are pleased to announce the first release of Techelson, available here. Techelson is a Test Execution Engine for Michelson. It aims at testing functional properties of Michelson smart contracts. Make sure to check the user documentation to get a sense of Techelson's workflow and features. For Liq... (Read more)