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