--- a/src/Pure/Admin/afp.scala Thu Mar 28 16:14:28 2024 +0100
+++ b/src/Pure/Admin/afp.scala Thu Mar 28 16:27:36 2024 +0100
@@ -12,13 +12,6 @@
object AFP {
- val groups: Map[String, String] =
- Map("large" -> "full 64-bit memory model or word arithmetic required",
- "slow" -> "CPU time much higher than 60min (on mid-range hardware)",
- "very_slow" -> "elapsed time of many hours (on high-end hardware)")
-
- val groups_bulky: List[String] = List("large", "slow")
-
val chapter: String = "AFP"
val BASE: Path = Path.explode("$AFP_BASE")
--- a/src/Pure/Admin/build_status.scala Thu Mar 28 16:14:28 2024 +0100
+++ b/src/Pure/Admin/build_status.scala Thu Mar 28 16:27:36 2024 +0100
@@ -354,7 +354,7 @@
if (session.isDefined &&
(!afp || chapter == AFP.chapter) &&
- (!profile.bulky || groups.exists(AFP.groups_bulky.toSet))) {
+ (!profile.bulky || groups.exists(Sessions.bulky_groups))) {
data_entries += (data_name -> (sessions + (session_name -> session.get)))
}
}
--- a/src/Pure/Build/sessions.scala Thu Mar 28 16:14:28 2024 +0100
+++ b/src/Pure/Build/sessions.scala Thu Mar 28 16:27:36 2024 +0100
@@ -530,6 +530,37 @@
}
+ /* notable groups */
+
+ sealed case class Group_Info(
+ name: String,
+ description: String,
+ bulky: Boolean = false,
+ afp: Boolean = false
+ ) {
+ override def toString: String = name
+ }
+
+ lazy val notable_groups: List[Group_Info] =
+ List(
+ Group_Info("large", "full 64-bit memory model or word arithmetic required",
+ bulky = true, afp = true),
+ Group_Info("slow", "CPU time much higher than 60min (on mid-range hardware)",
+ bulky = true, afp = true),
+ Group_Info("very_slow", "elapsed time of many hours (on high-end hardware)",
+ afp = true),
+ Group_Info("AFP", "entry within AFP", afp = true),
+ Group_Info("doc", "Isabelle documentation"),
+ Group_Info("no_doc", "suppressed Isabelle documentation")
+ )
+
+ lazy val bulky_groups: Set[String] =
+ Set.from(notable_groups.flatMap(g => if (g.bulky) Some(g.name) else None))
+
+ lazy val afp_groups: Set[String] =
+ Set.from(notable_groups.flatMap(g => if (g.afp) Some(g.name) else None))
+
+
/* cumulative session info */
private val BUILD_PREFS_BG = "<build_prefs:"
@@ -740,7 +771,7 @@
def record_proofs: Boolean = options.int("record_proofs") >= 2
def is_afp: Boolean = chapter == AFP.chapter
- def is_afp_bulky: Boolean = is_afp && groups.exists(AFP.groups_bulky.contains)
+ def is_afp_bulky: Boolean = is_afp && groups.exists(bulky_groups)
}
object Selection {