OCamlPro’s TZScan grant proposal accepted by the Tezos Foundation – joint press release

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[…]

opam 2.0.0 RC4-final is out!

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 repository may become limited, as[…]

Release of Alt-Ergo 2.2.0

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 extension is implemented as a[…]

OCaml JTRT

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[…]

Release of Alt-Ergo 2.1.0

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. The CDCL solver is now the default Boolean reasoner. The full list of[…]

New updates on TzScan

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 (http://tzscan.io), its Tezos block explorer to ease the use of the Tezos network.[…]

Release of a first version of TzScan.io, a Tezos block explorer

OCamlPro is proud to release a first version of TzScan (http://tzscan.io), 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, accounts and contracts detail pages,[…]

OCamlPro’s Liquidity-lang demo at JFLA2018 – a smart-contract design language

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 the #Liquidity language designed at OCamlPro,[…]

2017 at 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 formal methods[…]

EzSudoku

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 appearch that Sudoku is of great importance considering the number of posts explaining how to write a solver. Following that[…]

Opam 2.0 Beta is out!

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, bootstrapping from a working 1.2[…]

Release of Alt-Ergo 1.30 with experimental support for models generation

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 idea behind this feature is the[…]

ASM.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 if a[…]

Reduced Memory Allocations with ocp-memprof

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 prevent these allocations, and thus speed[…]

OPAM 1.2.2 Released

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 normal installation[…]

Yes, ocp-memprof (s)can(f) !

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. Installing the OCaml Memory Profiler We[…]

Cumulus and ocp-memprof, a love story

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 test and run the[…]

Private Release of Alt-Ergo 1.00

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 our clients. Quick Evaluation A quick comparison between[…]

OCamlPro Highlights: May-June 2014

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[…]

Try Alt-Ergo in Your Browser

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. Compilation “Try Alt-Ergo” is a Javascript-based version[…]

OCamlPro Highlights: April 2014

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[…]