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