The MPFR repository is hosted on Inria GitLab.
You can get the latest development version by using the anonymous Git access. To clone the repository, you can use the following command:
git clone https://gitlab.inria.fr/mpfr/mpfr.git
If you have an Inria GitLab account, you can alternatively clone the repository with SSH by using the following command:
git clone git@gitlab.inria.fr:mpfr/mpfr.git
These commands will create a directory named mpfr with a local Git repository and the latest version of the source (master branch). Please, read the doc/README.dev file (online version). In particular, the Git tree does not have a configure script; you need some development tools to generate it (more information is given in the README.dev file).
This allows you to benefit from the correction of bugs and various other improvements since the latest release. But as usual with development code, it may temporarily be unstable or have bugs preventing from compiling it (please report any problem so that it is fixed as soon as possible). You should use the latest MPFR release with the published patches if you do not want such problems.
From a Git working tree, a branch branchname
can be checked out with the following command:
git checkout branchname
(More precisely, if the local branch does not exist yet, this will create one and use the corresponding remote branch for tracking.)
Similarly, a tag tagname
can be checked out with the following command:
git checkout tagname
MPFR releases are based on branches whose name has the form major.minor
, where major
and minor
are two integers. There may be other kinds of branches, such as feature branches. The list of branches (including all these remote branches) can be obtained with the following command:
git branch -a
For each release branch, a tag of the form major.minor-root
is associated with the commit on which the branch is based (just before the first commit in this branch). A tag of the form major.minor.patchlevel
is associated with the commit on which such a release is based. The list of all tags can be obtained with the following command:
git tag -l
You can share a same local Git repository between multiple working trees, each tracking a different branch. For instance, from a working tree, you can create a new one ../mpfr-4.1
for the 4.1 branch with the following command:
git worktree add ../mpfr-4.1 4.1
The changes to a branch since it was created can be obtained with the following command (for the checked out branch, branchname
may be omitted), with a triple dot:
git diff master...branchname
For the release branches, the major.minor-root
tags can also be used, e.g.:
git diff branchname-root..branchname
The first repository for MPFR was created on 1999-06-09, using CVS. This repository was converted to Subversion on 2005-10-24. Then this Subversion repository was converted to Git on 2021-09-29, with an upload to Inria GitLab on 2021-10-15.
Due to some particularities of the Subversion repository and incorrect commit history dating back from CVS (due to bugs in the cvs2svn converter), the conversion from Subversion to Git had to be done with Eric S. Raymond's reposurgeon tool to fix everything (but also to add some metadata). The configuration files and scripts used for this conversion can be found in the mpfr-conversion.tar.xz archive.