Articles on Tooling


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)

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)

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)

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: 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)

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)

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)

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)

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: 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-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)

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)

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)

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: 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: 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)

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)

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: 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: 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-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: 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-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-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: 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: 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)