| author | nipkow | 
| Tue, 29 Aug 2017 15:07:15 +0200 | |
| changeset 66546 | 14a7d2a39336 | 
| parent 45778 | df6e210fb44c | 
| child 72004 | 913162a47d9f | 
| 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/"  | 
| 43269 | 7  | 
must reflect the corresponding files in Joe Hurd's official Metis  | 
8  | 
package. The package that was used when these notes where written  | 
|
| 45778 | 9  | 
was Metis 2.3 (release 20110926).  | 
| 39430 | 10  | 
|
11  | 
2. The license in each source file will probably not be something we  | 
|
| 39444 | 12  | 
can use in Isabelle. The "fix_metis_license" script can be run to  | 
13  | 
replace all occurrences of "MIT license" with "BSD License". In a  | 
|
14  | 
13 Sept. 2010 email to Gerwin Klein, Joe Hurd, the sole copyright  | 
|
15  | 
holder of Metis, wrote:  | 
|
| 39430 | 16  | 
|
| 
39433
 
3e41c9d29769
make "metis.ML" building process slightly more robust by eliminating the need for "FILES";
 
blanchet 
parents: 
39430 
diff
changeset
 | 
17  | 
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
 | 
18  | 
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
 | 
19  | 
Isabelle BSD license.  | 
| 39430 | 20  | 
|
| 39504 | 21  | 
3. Some modifications might have to be done manually to the source  | 
| 45778 | 22  | 
files (but probably not). The ultimate way to track them down is  | 
23  | 
to use Mercurial.  | 
|
| 39430 | 24  | 
|
| 39448 | 25  | 
4. Isabelle itself cares only about "metis.ML", which is generated  | 
| 39430 | 26  | 
from the files in "src/" by the script "make_metis". The script  | 
| 39448 | 27  | 
relies on "Makefile", "scripts/mlpp", and "src/", as well as  | 
28  | 
the pseudo-makefile "Makefile.FILES" used to determine all the  | 
|
29  | 
files needed to be included in "metis.ML".  | 
|
| 39430 | 30  | 
|
31  | 
5. The output of "make_metis" should then work as is with Isabelle,  | 
|
| 39448 | 32  | 
but there are of course no guarantees. The script "make_metis" and  | 
33  | 
the pseudo-makefile "Makefile.FILES" have a few regexes that could  | 
|
34  | 
    go wrong. They also produce a few temporary files ("FILES",
 | 
|
35  | 
"Makefile.dev", and "bin/mosml/Makefile.src") as side-effects; you  | 
|
36  | 
can safely ignore them or delete them.  | 
|
| 39430 | 37  | 
|
38  | 
6. Once you have successfully regenerated "metis.ML", build all of  | 
|
39  | 
Isabelle and keep an eye on the time taken by Metis.  | 
|
40  | 
"HOL-Metis_Examples" is a good test case. Running the Judgement  | 
|
41  | 
Day suite at this point is also a good idea.  | 
|
42  | 
||
43  | 
7. Once everything is fine and you are ready to push your changes to  | 
|
44  | 
the main Isabelle repository, take the time to update these  | 
|
45  | 
instructions, especially points 1 and 3 above.  | 
|
46  | 
||
47  | 
Good luck!  | 
|
48  | 
||
49  | 
Jasmin Blanchette  | 
|
| 45778 | 50  | 
1 December 2011  |