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