src/Pure/System/isabelle_tool.scala
author wenzelm
Sat, 28 Oct 2023 17:35:26 +0200
changeset 78854 35b406a5c105
parent 78827 06f0e720b913
parent 78840 4b528ca25573
child 79182 6202d0ff36b4
permissions -rw-r--r--
merged
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
62829
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
     1
/*  Title:      Pure/System/isabelle_tool.scala
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
     2
    Author:     Makarius
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
     3
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
     4
Isabelle system tools: external executables or internal Scala functions.
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
     5
*/
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
     6
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
     7
package isabelle
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
     8
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
     9
75393
87ebf5a50283 clarified formatting, for the sake of scala3;
wenzelm
parents: 75377
diff changeset
    10
object Isabelle_Tool {
62829
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
    11
  /* external tools */
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
    12
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
    13
  private def dirs(): List[Path] = Path.split(Isabelle_System.getenv_strict("ISABELLE_TOOLS"))
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
    14
75642
bb048086468a discontinued Isabelle tools implemented as .scala scripts;
wenzelm
parents: 75628
diff changeset
    15
  private def is_external(dir: Path, name: String): Boolean = {
bb048086468a discontinued Isabelle tools implemented as .scala scripts;
wenzelm
parents: 75628
diff changeset
    16
    val file = (dir + Path.explode(name)).file
75906
2167b9e3157a clarified signature: support for adhoc file types;
wenzelm
parents: 75644
diff changeset
    17
    try { file.isFile && file.canRead && file.canExecute && !File.is_backup(name) }
62829
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
    18
    catch { case _: SecurityException => false }
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
    19
  }
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
    20
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
    21
  private def find_external(name: String): Option[List[String] => Unit] =
75394
42267c650205 tuned formatting;
wenzelm
parents: 75393
diff changeset
    22
    dirs().collectFirst(
42267c650205 tuned formatting;
wenzelm
parents: 75393
diff changeset
    23
      {
42267c650205 tuned formatting;
wenzelm
parents: 75393
diff changeset
    24
        case dir if is_external(dir, name) =>
42267c650205 tuned formatting;
wenzelm
parents: 75393
diff changeset
    25
          { (args: List[String]) =>
42267c650205 tuned formatting;
wenzelm
parents: 75393
diff changeset
    26
            val tool = dir + Path.explode(name)
42267c650205 tuned formatting;
wenzelm
parents: 75393
diff changeset
    27
            val result = Isabelle_System.bash(File.bash_path(tool) + " " + Bash.strings(args))
42267c650205 tuned formatting;
wenzelm
parents: 75393
diff changeset
    28
            sys.exit(result.print_stdout.rc)
42267c650205 tuned formatting;
wenzelm
parents: 75393
diff changeset
    29
          }
42267c650205 tuned formatting;
wenzelm
parents: 75393
diff changeset
    30
      })
62830
85024c0e953d support for internal tools;
wenzelm
parents: 62829
diff changeset
    31
85024c0e953d support for internal tools;
wenzelm
parents: 62829
diff changeset
    32
85024c0e953d support for internal tools;
wenzelm
parents: 62829
diff changeset
    33
  /* internal tools */
85024c0e953d support for internal tools;
wenzelm
parents: 62829
diff changeset
    34
69277
258bef08b31e support for user-defined Isabelle/Scala command-line tools;
wenzelm
parents: 69168
diff changeset
    35
  private lazy val internal_tools: List[Isabelle_Tool] =
72159
40b5ee5889d2 clarified management of services: static declarations vs. dynamic instances (e.g. relevant for stateful Session.Protocol_Handler, notably Scala.Handler and session "System");
wenzelm
parents: 71808
diff changeset
    36
    Isabelle_System.make_services(classOf[Isabelle_Scala_Tools]).flatMap(_.tools)
62830
85024c0e953d support for internal tools;
wenzelm
parents: 62829
diff changeset
    37
85024c0e953d support for internal tools;
wenzelm
parents: 62829
diff changeset
    38
  private def find_internal(name: String): Option[List[String] => Unit] =
62960
cfbb6a5b427c simplified -- avoid odd mutable state, which potentially causes problems with module initialization;
wenzelm
parents: 62838
diff changeset
    39
    internal_tools.collectFirst({
69277
258bef08b31e support for user-defined Isabelle/Scala command-line tools;
wenzelm
parents: 69168
diff changeset
    40
      case tool if tool.name == name =>
71632
c1bc38327bc2 clarified signature;
wenzelm
parents: 71383
diff changeset
    41
        args => Command_Line.tool { tool.body(args) }
62960
cfbb6a5b427c simplified -- avoid odd mutable state, which potentially causes problems with module initialization;
wenzelm
parents: 62838
diff changeset
    42
      })
62831
5560905a32ae prefer internal tool;
wenzelm
parents: 62830
diff changeset
    43
62829
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
    44
72763
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    45
  /* list tools */
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    46
75393
87ebf5a50283 clarified formatting, for the sake of scala3;
wenzelm
parents: 75377
diff changeset
    47
  abstract class Entry {
72763
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    48
    def name: String
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    49
    def position: Properties.T
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    50
    def description: String
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    51
    def print: String =
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    52
      description match {
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    53
        case "" => name
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    54
        case descr => name + " - " + descr
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    55
      }
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    56
  }
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    57
75393
87ebf5a50283 clarified formatting, for the sake of scala3;
wenzelm
parents: 75377
diff changeset
    58
  sealed case class External(name: String, path: Path) extends Entry {
72763
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    59
    def position: Properties.T = Position.File(path.absolute.implode)
75393
87ebf5a50283 clarified formatting, for the sake of scala3;
wenzelm
parents: 75377
diff changeset
    60
    def description: String = {
72763
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    61
      val Pattern = """.*\bDESCRIPTION: *(.*)""".r
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    62
      split_lines(File.read(path)).collectFirst({ case Pattern(s) => s }) getOrElse ""
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    63
    }
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    64
  }
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    65
75393
87ebf5a50283 clarified formatting, for the sake of scala3;
wenzelm
parents: 75377
diff changeset
    66
  def external_tools(): List[External] = {
72763
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    67
    for {
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    68
      dir <- dirs() if dir.is_dir
75642
bb048086468a discontinued Isabelle tools implemented as .scala scripts;
wenzelm
parents: 75628
diff changeset
    69
      name <- File.read_dir(dir) if is_external(dir, name)
bb048086468a discontinued Isabelle tools implemented as .scala scripts;
wenzelm
parents: 75628
diff changeset
    70
    } yield External(name, dir + Path.explode(name))
72763
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    71
  }
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    72
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    73
  def isabelle_tools(): List[Entry] =
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    74
    (external_tools() ::: internal_tools).sortBy(_.name)
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    75
75393
87ebf5a50283 clarified formatting, for the sake of scala3;
wenzelm
parents: 75377
diff changeset
    76
  object Isabelle_Tools extends Scala.Fun_String("isabelle_tools") {
72763
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    77
    val here = Scala_Project.here
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    78
    def apply(arg: String): String =
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    79
      if (arg.nonEmpty) error("Bad argument: " + quote(arg))
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    80
      else {
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    81
        val result = isabelle_tools().map(entry => (entry.name, entry.position))
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    82
        val body = { import XML.Encode._; list(pair(string, properties))(result) }
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    83
        YXML.string_of_body(body)
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    84
      }
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    85
  }
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    86
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    87
62829
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
    88
  /* command line entry point */
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
    89
75393
87ebf5a50283 clarified formatting, for the sake of scala3;
wenzelm
parents: 75377
diff changeset
    90
  def main(args: Array[String]): Unit = {
71632
c1bc38327bc2 clarified signature;
wenzelm
parents: 71383
diff changeset
    91
    Command_Line.tool {
62829
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
    92
      args.toList match {
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
    93
        case Nil | List("-?") =>
72763
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
    94
          val tool_descriptions = isabelle_tools().map(_.print)
62829
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
    95
          Getopts("""
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
    96
Usage: isabelle TOOL [ARGS ...]
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
    97
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
    98
  Start Isabelle TOOL with ARGS; pass "-?" for tool-specific help.
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
    99
73367
77ef8bef0593 clarified signature --- fewer warnings;
wenzelm
parents: 73340
diff changeset
   100
Available tools:""" + tool_descriptions.mkString("\n  ", "\n  ", "\n")).usage()
62829
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
   101
        case tool_name :: tool_args =>
62830
85024c0e953d support for internal tools;
wenzelm
parents: 62829
diff changeset
   102
          find_external(tool_name) orElse find_internal(tool_name) match {
85024c0e953d support for internal tools;
wenzelm
parents: 62829
diff changeset
   103
            case Some(tool) => tool(tool_args)
62829
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
   104
            case None => error("Unknown Isabelle tool: " + quote(tool_name))
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
   105
          }
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
   106
      }
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
   107
    }
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
   108
  }
4141c2a8458b clarified Isabelle tool wrapper: bash, Scala, no perl, no ML;
wenzelm
parents:
diff changeset
   109
}
62830
85024c0e953d support for internal tools;
wenzelm
parents: 62829
diff changeset
   110
72763
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
   111
sealed case class Isabelle_Tool(
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
   112
  name: String,
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
   113
  description: String,
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
   114
  here: Scala_Project.Here,
75393
87ebf5a50283 clarified formatting, for the sake of scala3;
wenzelm
parents: 75377
diff changeset
   115
  body: List[String] => Unit
87ebf5a50283 clarified formatting, for the sake of scala3;
wenzelm
parents: 75377
diff changeset
   116
) extends Isabelle_Tool.Entry {
72763
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
   117
  def position: Position.T = here.position
3cc73d00553c added document antiquotation @{tool};
wenzelm
parents: 72761
diff changeset
   118
}
69277
258bef08b31e support for user-defined Isabelle/Scala command-line tools;
wenzelm
parents: 69168
diff changeset
   119
71736
a2afc7ed2c68 another isabelle_scala_service;
wenzelm
parents: 71632
diff changeset
   120
class Isabelle_Scala_Tools(val tools: Isabelle_Tool*) extends Isabelle_System.Service
69277
258bef08b31e support for user-defined Isabelle/Scala command-line tools;
wenzelm
parents: 69168
diff changeset
   121
69810
a23d6ff31f79 clarified name;
wenzelm
parents: 69557
diff changeset
   122
class Tools extends Isabelle_Scala_Tools(
78840
4b528ca25573 added initial version of benchmark module, e.g., to compare performance of different hosts;
Fabian Huch <huch@in.tum.de>
parents: 78746
diff changeset
   123
  Benchmark.isabelle_tool,
77553
570f65953173 clarified modules;
wenzelm
parents: 76528
diff changeset
   124
  Build.isabelle_tool1,
570f65953173 clarified modules;
wenzelm
parents: 76528
diff changeset
   125
  Build.isabelle_tool2,
77557
eff08c3f89fe basic setup for "isabelle build_worker";
wenzelm
parents: 77553
diff changeset
   126
  Build.isabelle_tool3,
78562
53e3fa5e3720 clarified command-line tools;
wenzelm
parents: 78315
diff changeset
   127
  Build.isabelle_tool4,
76222
3c4e373922ca restructured ci profile into modular ci build system;
Fabian Huch <huch@in.tum.de>
parents: 76075
diff changeset
   128
  CI_Build.isabelle_tool,
69277
258bef08b31e support for user-defined Isabelle/Scala command-line tools;
wenzelm
parents: 69168
diff changeset
   129
  Doc.isabelle_tool,
77567
b975f5aaf6b8 renamed "isabelle build_docker" to "isabelle docker_build" (unrelated to "isabelle build");
wenzelm
parents: 77566
diff changeset
   130
  Docker_Build.isabelle_tool,
73718
ecb31c3bf980 clarified modules;
wenzelm
parents: 73691
diff changeset
   131
  Document_Build.isabelle_tool,
76480
5ba13c82a286 proper user tool;
wenzelm
parents: 76478
diff changeset
   132
  Dotnet_Setup.isabelle_tool,
69277
258bef08b31e support for user-defined Isabelle/Scala command-line tools;
wenzelm
parents: 69168
diff changeset
   133
  Dump.isabelle_tool,
258bef08b31e support for user-defined Isabelle/Scala command-line tools;
wenzelm
parents: 69168
diff changeset
   134
  Export.isabelle_tool,
77564
57551ee13cfd sort lines;
wenzelm
parents: 77557
diff changeset
   135
  Logo.isabelle_tool,
69277
258bef08b31e support for user-defined Isabelle/Scala command-line tools;
wenzelm
parents: 69168
diff changeset
   136
  ML_Process.isabelle_tool,
75474
d16dd2d1b50a support for "isabelle hg_sync";
wenzelm
parents: 75394
diff changeset
   137
  Mercurial.isabelle_tool1,
d16dd2d1b50a support for "isabelle hg_sync";
wenzelm
parents: 75394
diff changeset
   138
  Mercurial.isabelle_tool2,
69277
258bef08b31e support for user-defined Isabelle/Scala command-line tools;
wenzelm
parents: 69168
diff changeset
   139
  Mkroot.isabelle_tool,
258bef08b31e support for user-defined Isabelle/Scala command-line tools;
wenzelm
parents: 69168
diff changeset
   140
  Options.isabelle_tool,
70967
79736ffe77c3 some support for Phabricator server;
wenzelm
parents: 70686
diff changeset
   141
  Phabricator.isabelle_tool1,
79736ffe77c3 some support for Phabricator server;
wenzelm
parents: 70686
diff changeset
   142
  Phabricator.isabelle_tool2,
71097
d3ededaa77b3 added "isabelle phabricator";
wenzelm
parents: 70967
diff changeset
   143
  Phabricator.isabelle_tool3,
71109
8c1c717a830b configure SSH hosting via "isabelle phabricator_setup_ssh";
wenzelm
parents: 71097
diff changeset
   144
  Phabricator.isabelle_tool4,
78315
addecc8de2c4 proper system integration and renaming;
wenzelm
parents: 78301
diff changeset
   145
  Profiling.isabelle_tool,
69277
258bef08b31e support for user-defined Isabelle/Scala command-line tools;
wenzelm
parents: 69168
diff changeset
   146
  Profiling_Report.isabelle_tool,
77564
57551ee13cfd sort lines;
wenzelm
parents: 77557
diff changeset
   147
  Scala_Project.isabelle_tool,
69277
258bef08b31e support for user-defined Isabelle/Scala command-line tools;
wenzelm
parents: 69168
diff changeset
   148
  Server.isabelle_tool,
71808
e2ad50885887 added "isabelle sessions" tool;
wenzelm
parents: 71740
diff changeset
   149
  Sessions.isabelle_tool,
75555
197a5b3a1ea2 promote "isabelle sync" to regular user-space tool, with proper documentation;
wenzelm
parents: 75549
diff changeset
   150
  Sync.isabelle_tool,
69557
e72360fef69a update theory sources based on PIDE markup;
wenzelm
parents: 69429
diff changeset
   151
  Update.isabelle_tool,
69277
258bef08b31e support for user-defined Isabelle/Scala command-line tools;
wenzelm
parents: 69168
diff changeset
   152
  Update_Cartouches.isabelle_tool,
258bef08b31e support for user-defined Isabelle/Scala command-line tools;
wenzelm
parents: 69168
diff changeset
   153
  Update_Comments.isabelle_tool,
258bef08b31e support for user-defined Isabelle/Scala command-line tools;
wenzelm
parents: 69168
diff changeset
   154
  Update_Header.isabelle_tool,
258bef08b31e support for user-defined Isabelle/Scala command-line tools;
wenzelm
parents: 69168
diff changeset
   155
  Update_Then.isabelle_tool,
258bef08b31e support for user-defined Isabelle/Scala command-line tools;
wenzelm
parents: 69168
diff changeset
   156
  Update_Theorems.isabelle_tool,
73691
2f9877db82a1 reimplemented Mirabelle as Isabelle/ML presentation hook + Isabelle/Scala tool, but sledgehammer is still inactive;
wenzelm
parents: 73653
diff changeset
   157
  isabelle.mirabelle.Mirabelle.isabelle_tool,
75562
e7e2285cf800 "isabelle vscode" is regular user-space tool;
wenzelm
parents: 75555
diff changeset
   158
  isabelle.vscode.Language_Server.isabelle_tool,
e7e2285cf800 "isabelle vscode" is regular user-space tool;
wenzelm
parents: 75555
diff changeset
   159
  isabelle.vscode.VSCode_Main.isabelle_tool)
69277
258bef08b31e support for user-defined Isabelle/Scala command-line tools;
wenzelm
parents: 69168
diff changeset
   160
258bef08b31e support for user-defined Isabelle/Scala command-line tools;
wenzelm
parents: 69168
diff changeset
   161
class Admin_Tools extends Isabelle_Scala_Tools(
258bef08b31e support for user-defined Isabelle/Scala command-line tools;
wenzelm
parents: 69168
diff changeset
   162
  Build_Doc.isabelle_tool,
77749
4649c7bfd3f0 provide Isabelle tool wrapper;
wenzelm
parents: 77619
diff changeset
   163
  Build_Log.isabelle_tool,
69277
258bef08b31e support for user-defined Isabelle/Scala command-line tools;
wenzelm
parents: 69168
diff changeset
   164
  Build_Status.isabelle_tool,
258bef08b31e support for user-defined Isabelle/Scala command-line tools;
wenzelm
parents: 69168
diff changeset
   165
  Check_Sources.isabelle_tool,
77566
2a99fcb283ee renamed administrative tools to build Isabelle components (unrelated to "isabelle build");
wenzelm
parents: 77564
diff changeset
   166
  Component_CSDP.isabelle_tool,
2a99fcb283ee renamed administrative tools to build Isabelle components (unrelated to "isabelle build");
wenzelm
parents: 77564
diff changeset
   167
  Component_CVC5.isabelle_tool,
2a99fcb283ee renamed administrative tools to build Isabelle components (unrelated to "isabelle build");
wenzelm
parents: 77564
diff changeset
   168
  Component_Cygwin.isabelle_tool,
2a99fcb283ee renamed administrative tools to build Isabelle components (unrelated to "isabelle build");
wenzelm
parents: 77564
diff changeset
   169
  Component_E.isabelle_tool,
2a99fcb283ee renamed administrative tools to build Isabelle components (unrelated to "isabelle build");
wenzelm
parents: 77564
diff changeset
   170
  Component_EPTCS.isabelle_tool,
2a99fcb283ee renamed administrative tools to build Isabelle components (unrelated to "isabelle build");
wenzelm
parents: 77564
diff changeset
   171
  Component_Easychair.isabelle_tool,
2a99fcb283ee renamed administrative tools to build Isabelle components (unrelated to "isabelle build");
wenzelm
parents: 77564
diff changeset
   172
  Component_Foiltex.isabelle_tool,
2a99fcb283ee renamed administrative tools to build Isabelle components (unrelated to "isabelle build");
wenzelm
parents: 77564
diff changeset
   173
  Component_Fonts.isabelle_tool,
78746
a748a244a028 add component build tool for hugo from afp-devel;
Fabian Huch <huch@in.tum.de>
parents: 78562
diff changeset
   174
  Component_Hugo.isabelle_tool,
78827
06f0e720b913 added component for javax mail;
Fabian Huch <huch@in.tum.de>
parents: 78746
diff changeset
   175
  Component_Javamail.isabelle_tool,
77566
2a99fcb283ee renamed administrative tools to build Isabelle components (unrelated to "isabelle build");
wenzelm
parents: 77564
diff changeset
   176
  Component_JDK.isabelle_tool,
2a99fcb283ee renamed administrative tools to build Isabelle components (unrelated to "isabelle build");
wenzelm
parents: 77564
diff changeset
   177
  Component_JEdit.isabelle_tool,
77619
6d0985955872 discontinued apache-commons in favour of jsoup, which is smaller and more useful;
wenzelm
parents: 77567
diff changeset
   178
  Component_Jsoup.isabelle_tool,
77566
2a99fcb283ee renamed administrative tools to build Isabelle components (unrelated to "isabelle build");
wenzelm
parents: 77564
diff changeset
   179
  Component_LIPIcs.isabelle_tool,
2a99fcb283ee renamed administrative tools to build Isabelle components (unrelated to "isabelle build");
wenzelm
parents: 77564
diff changeset
   180
  Component_LLNCS.isabelle_tool,
2a99fcb283ee renamed administrative tools to build Isabelle components (unrelated to "isabelle build");
wenzelm
parents: 77564
diff changeset
   181
  Component_Minisat.isabelle_tool,
2a99fcb283ee renamed administrative tools to build Isabelle components (unrelated to "isabelle build");
wenzelm
parents: 77564
diff changeset
   182
  Component_PDFjs.isabelle_tool,
2a99fcb283ee renamed administrative tools to build Isabelle components (unrelated to "isabelle build");
wenzelm
parents: 77564
diff changeset
   183
  Component_PolyML.isabelle_tool1,
2a99fcb283ee renamed administrative tools to build Isabelle components (unrelated to "isabelle build");
wenzelm
parents: 77564
diff changeset
   184
  Component_PolyML.isabelle_tool2,
2a99fcb283ee renamed administrative tools to build Isabelle components (unrelated to "isabelle build");
wenzelm
parents: 77564
diff changeset
   185
  Component_PostgreSQL.isabelle_tool,
2a99fcb283ee renamed administrative tools to build Isabelle components (unrelated to "isabelle build");
wenzelm
parents: 77564
diff changeset
   186
  Component_Prismjs.isabelle_tool,
77753
2b5b093a1c08 build rsync from sources, to avoid divergence of protocols on various platforms;
wenzelm
parents: 77749
diff changeset
   187
  Component_Rsync.isabelle_tool,
77566
2a99fcb283ee renamed administrative tools to build Isabelle components (unrelated to "isabelle build");
wenzelm
parents: 77564
diff changeset
   188
  Component_SPASS.isabelle_tool,
2a99fcb283ee renamed administrative tools to build Isabelle components (unrelated to "isabelle build");
wenzelm
parents: 77564
diff changeset
   189
  Component_SQLite.isabelle_tool,
2a99fcb283ee renamed administrative tools to build Isabelle components (unrelated to "isabelle build");
wenzelm
parents: 77564
diff changeset
   190
  Component_Scala.isabelle_tool,
78301
9776f5278ae8 provide tool for GHC stack component;
wenzelm
parents: 77753
diff changeset
   191
  Component_Stack.isabelle_tool,
77566
2a99fcb283ee renamed administrative tools to build Isabelle components (unrelated to "isabelle build");
wenzelm
parents: 77564
diff changeset
   192
  Component_Vampire.isabelle_tool,
2a99fcb283ee renamed administrative tools to build Isabelle components (unrelated to "isabelle build");
wenzelm
parents: 77564
diff changeset
   193
  Component_VeriT.isabelle_tool,
2a99fcb283ee renamed administrative tools to build Isabelle components (unrelated to "isabelle build");
wenzelm
parents: 77564
diff changeset
   194
  Component_Zipperposition.isabelle_tool,
2a99fcb283ee renamed administrative tools to build Isabelle components (unrelated to "isabelle build");
wenzelm
parents: 77564
diff changeset
   195
  Component_Zstd.isabelle_tool,
69429
dc5fbcb07c7b replaced "isabelle components_checksum" shell script by "isabelle build_components" in Scala, with more functionality;
wenzelm
parents: 69401
diff changeset
   196
  Components.isabelle_tool,
77566
2a99fcb283ee renamed administrative tools to build Isabelle components (unrelated to "isabelle build");
wenzelm
parents: 77564
diff changeset
   197
  isabelle.vscode.Component_VSCode.isabelle_tool,
2a99fcb283ee renamed administrative tools to build Isabelle components (unrelated to "isabelle build");
wenzelm
parents: 77564
diff changeset
   198
  isabelle.vscode.Component_VSCodium.isabelle_tool1,
2a99fcb283ee renamed administrative tools to build Isabelle components (unrelated to "isabelle build");
wenzelm
parents: 77564
diff changeset
   199
  isabelle.vscode.Component_VSCodium.isabelle_tool2)