Verification for Dummies: SMT and Induction

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, runnable examples whenever possible. Some of them can run directly in a browser, while others require to run small Verification for Dummies: SMT and Induction

Generating static and portable executables with OCaml

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 have all the needed shared libraries Generating static and portable executables with OCaml

opam 2.1.0 is released!

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 opam-depext plugin), increasing their reliability as it integrates the solving step Creation opam 2.1.0 is released!

Tags:

opam 2.0.9 release

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 been upgraded to opam 2.1 [#4636] macOS sandbox opam 2.0.9 release

Detecting identity functions in 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 feasibility of implementing this feature, we advertised an internship with our Detecting identity functions in Flambda

Tutorial: Format Module of OCaml

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 (in French)

Alt-Ergo Users’ Club Annual Meeting (2021)

The third annual meeting of the Alt-Ergo Users’ Club took place on April 1! Our annual meeting is the ideal place to review the needs of each partner regarding Alt-Ergo. We were pleased to welcome our partners to discuss the roadmap for future Alt-Ergo developments and improvements. Alt-Ergo is an automatic prover of mathematical formulas, Alt-Ergo Users’ Club Annual Meeting (2021)

Tags: ,

New Try-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 been maintained by OCamlPro for many years, and it’s New Try-Alt-Ergo

opam 2.0.8 release

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 to the sandbox script are no opam 2.0.8 release

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 companies to the use of strongly-typed languages like OCaml but also Rust, 2020 at OCamlPro

Release of Alt-Ergo 2.4.0

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 command line parsing to use cmdliner. You will need to Release of Alt-Ergo 2.4.0

Rehabilitating packs using functors and recursivity, part 2.

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 parameterized libraries. In this blog post, we Rehabilitating packs using functors and recursivity, part 2.

Tags: , ,

Rehabilitating Packs using Functors and Recursivity, part 1.

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. This work is funded by JaneStreet. Packs in the OCaml ecosystem Rehabilitating Packs using Functors and Recursivity, part 1.

[Interview] Sylvain Conchon joins 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-Christophe Filliâtre, a book for students in French [Interview] Sylvain Conchon joins OCamlPro

A Solidity parser in OCaml with Menhir

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 for the Solidity language directly in a blockchain. Solidity A Solidity parser in OCaml with Menhir

opam 2.0.7 release

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 duplication [#4132 @rjbou] Note: To homogenise macOS name opam 2.0.7 release

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: you want a runtime to gracefully do its job without having to mind it all the An in-depth Look at OCaml’s new “Best-fit” Garbage Collector Strategy

Tags: , ,

New version of TryOCaml in beta!

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 latest OCaml release (4.10.0), local storage of New version of TryOCaml in beta!

Tags: ,

Alt-Ergo Users’ Club Annual Meeting

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 Alt-Ergo Users’ Club Annual Meeting

Tags:

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, first in the world of OCaml (flambda2 & compiler optimisations, 2019 at OCamlPro

Tags: , , , , , , , , , ,

opam 2.0.6 release

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 opam 2.0.6 release

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, Switches, Allowed URL formats, Packages, Exploring, Package pinning, Working with local pins, Sharing a dev The Opam 2.0 cheatsheet, with a new theme!

OCaml expert and beginner training by OCamlPro (in French): Nov. 5-6 & 7-8

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 experienced OCaml programmers to better understand advanced type system possibilities (objects, OCaml expert and beginner training by OCamlPro (in French): Nov. 5-6 & 7-8

Updated Cheat Sheets: OCaml Language and OCaml Standard Library

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. Updated Cheat Sheets: OCaml Language and OCaml Standard Library

OCamlPro’s compiler team work update

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 optimization framework (see below for more OCamlPro’s compiler team work update

Tags:

opam 2.0.5 release

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 changes [#3896 @AltGr] Fix cppo detection opam 2.0.5 release