| author | wenzelm | 
| Mon, 09 Sep 2024 21:54:41 +0200 | |
| changeset 80831 | c1521c003e78 | 
| parent 74358 | 6ab3116a251a | 
| permissions | -rw-r--r-- | 
| 39430 | 1  | 
It's a good idea to update the Metis source code regularly, to benefit  | 
2  | 
from the latest developments, to avoid a permanent fork, and to detect  | 
|
3  | 
Metis problems early. This file explains how to update the source code  | 
|
| 42235 | 4  | 
for Metis with the latest Metis package.  | 
| 39430 | 5  | 
|
| 39448 | 6  | 
1. The files "Makefile" and "script/mlpp" and the directory "src/"  | 
| 72004 | 7  | 
must reflect the corresponding files in Joe Leslie-Hurd's official  | 
8  | 
Metis package. The package that was used when these notes where  | 
|
9  | 
written was Metis 2.3 (release 20110926). The package was later  | 
|
| 74358 | 10  | 
updated to Metis 2.4 (release 20180810) and later again to Metis 2.4  | 
11  | 
(release 20200713).  | 
|
| 39430 | 12  | 
|
13  | 
2. The license in each source file will probably not be something we  | 
|
| 39444 | 14  | 
can use in Isabelle. The "fix_metis_license" script can be run to  | 
15  | 
replace all occurrences of "MIT license" with "BSD License". In a  | 
|
| 72004 | 16  | 
13 Sept. 2010 email to Gerwin Klein, Joe Leslie-Hurd, the sole  | 
17  | 
copyright holder of Metis, wrote:  | 
|
| 39430 | 18  | 
|
| 
39433
 
3e41c9d29769
make "metis.ML" building process slightly more robust by eliminating the need for "FILES";
 
blanchet 
parents: 
39430 
diff
changeset
 | 
19  | 
I hereby give permission to the Isabelle team to release Metis  | 
| 
 
3e41c9d29769
make "metis.ML" building process slightly more robust by eliminating the need for "FILES";
 
blanchet 
parents: 
39430 
diff
changeset
 | 
20  | 
as part of Isabelle, with the Metis code covered under the  | 
| 
 
3e41c9d29769
make "metis.ML" building process slightly more robust by eliminating the need for "FILES";
 
blanchet 
parents: 
39430 
diff
changeset
 | 
21  | 
Isabelle BSD license.  | 
| 39430 | 22  | 
|
| 39504 | 23  | 
3. Some modifications might have to be done manually to the source  | 
| 45778 | 24  | 
files (but probably not). The ultimate way to track them down is  | 
25  | 
to use Mercurial.  | 
|
| 39430 | 26  | 
|
| 39448 | 27  | 
4. Isabelle itself cares only about "metis.ML", which is generated  | 
| 39430 | 28  | 
from the files in "src/" by the script "make_metis". The script  | 
| 39448 | 29  | 
relies on "Makefile", "scripts/mlpp", and "src/", as well as  | 
30  | 
the pseudo-makefile "Makefile.FILES" used to determine all the  | 
|
31  | 
files needed to be included in "metis.ML".  | 
|
| 39430 | 32  | 
|
33  | 
5. The output of "make_metis" should then work as is with Isabelle,  | 
|
| 39448 | 34  | 
but there are of course no guarantees. The script "make_metis" and  | 
35  | 
the pseudo-makefile "Makefile.FILES" have a few regexes that could  | 
|
36  | 
    go wrong. They also produce a few temporary files ("FILES",
 | 
|
37  | 
"Makefile.dev", and "bin/mosml/Makefile.src") as side-effects; you  | 
|
38  | 
can safely ignore them or delete them.  | 
|
| 39430 | 39  | 
|
40  | 
6. Once you have successfully regenerated "metis.ML", build all of  | 
|
41  | 
Isabelle and keep an eye on the time taken by Metis.  | 
|
42  | 
"HOL-Metis_Examples" is a good test case. Running the Judgement  | 
|
43  | 
Day suite at this point is also a good idea.  | 
|
44  | 
||
45  | 
7. Once everything is fine and you are ready to push your changes to  | 
|
46  | 
the main Isabelle repository, take the time to update these  | 
|
47  | 
instructions, especially points 1 and 3 above.  | 
|
48  | 
||
49  | 
Good luck!  | 
|
50  | 
||
| 72004 | 51  | 
|
| 39430 | 52  | 
Jasmin Blanchette  | 
| 45778 | 53  | 
1 December 2011  | 
| 72004 | 54  | 
|
55  | 
Updated by  | 
|
56  | 
||
57  | 
Martin Desharnais  | 
|
58  | 
9 July 2020  | 
|
| 74358 | 59  | 
23 September 2021  |