author | blanchet |
Fri, 17 Sep 2010 01:59:43 +0200 | |
changeset 39504 | 99d6cad53c7e |
parent 39448 | 64639ff50fcd |
child 42235 | 89571b08a427 |
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 |
|
4 |
for Metis with the latest Metis package. The procedure is |
|
5 |
unfortunately somewhat involved and frustrating, and hopefully |
|
6 |
temporary. |
|
7 |
||
39448 | 8 |
1. The files "Makefile" and "script/mlpp" and the directory "src/" |
9 |
were initially copied from Joe Hurd's official Metis package. The |
|
10 |
package that was used when these notes where written was Metis 2.3 |
|
39504 | 11 |
(16 Sept. 2010). |
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 |
|
16 |
13 Sept. 2010 email to Gerwin Klein, Joe Hurd, the sole copyright |
|
17 |
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 |
24 |
files. The ultimate way to track them down is to use Mercurial. |
|
25 |
The command |
|
39430 | 26 |
|
39504 | 27 |
hg diff -rcffceed8e7fa: src |
39430 | 28 |
|
39448 | 29 |
should do the trick. You might need to specify a different |
39430 | 30 |
revision number if somebody updated the Metis sources without |
39448 | 31 |
updating these instructions; consult the history in case of doubt. |
39430 | 32 |
|
39448 | 33 |
4. Isabelle itself cares only about "metis.ML", which is generated |
39430 | 34 |
from the files in "src/" by the script "make_metis". The script |
39448 | 35 |
relies on "Makefile", "scripts/mlpp", and "src/", as well as |
36 |
the pseudo-makefile "Makefile.FILES" used to determine all the |
|
37 |
files needed to be included in "metis.ML". |
|
39430 | 38 |
|
39 |
5. The output of "make_metis" should then work as is with Isabelle, |
|
39448 | 40 |
but there are of course no guarantees. The script "make_metis" and |
41 |
the pseudo-makefile "Makefile.FILES" have a few regexes that could |
|
42 |
go wrong. They also produce a few temporary files ("FILES", |
|
43 |
"Makefile.dev", and "bin/mosml/Makefile.src") as side-effects; you |
|
44 |
can safely ignore them or delete them. |
|
39430 | 45 |
|
46 |
6. Once you have successfully regenerated "metis.ML", build all of |
|
47 |
Isabelle and keep an eye on the time taken by Metis. |
|
48 |
"HOL-Metis_Examples" is a good test case. Running the Judgement |
|
49 |
Day suite at this point is also a good idea. |
|
50 |
||
51 |
7. Once everything is fine and you are ready to push your changes to |
|
52 |
the main Isabelle repository, take the time to update these |
|
53 |
instructions, especially points 1 and 3 above. |
|
54 |
||
55 |
Good luck! |
|
56 |
||
57 |
Jasmin Blanchette |
|
39504 | 58 |
17 Sept. 2010 |