src/Pure/Build/sessions.scala
changeset 80055 42bc8ab751c1
parent 79502 c7a98469c0e7
child 80062 1478c6d52864
equal deleted inserted replaced
80054:f8d7df38d7c6 80055:42bc8ab751c1
   528 
   528 
   529     override def toString: String = "Sessions.Deps(" + sessions_structure + ")"
   529     override def toString: String = "Sessions.Deps(" + sessions_structure + ")"
   530   }
   530   }
   531 
   531 
   532 
   532 
       
   533   /* notable groups */
       
   534 
       
   535   sealed case class Group_Info(
       
   536     name: String,
       
   537     description: String,
       
   538     bulky: Boolean = false,
       
   539     afp: Boolean = false
       
   540   ) {
       
   541     override def toString: String = name
       
   542   }
       
   543 
       
   544   lazy val notable_groups: List[Group_Info] =
       
   545     List(
       
   546       Group_Info("large", "full 64-bit memory model or word arithmetic required",
       
   547         bulky = true, afp = true),
       
   548       Group_Info("slow", "CPU time much higher than 60min (on mid-range hardware)",
       
   549         bulky = true, afp = true),
       
   550       Group_Info("very_slow", "elapsed time of many hours (on high-end hardware)",
       
   551         afp = true),
       
   552       Group_Info("AFP", "entry within AFP", afp = true),
       
   553       Group_Info("doc", "Isabelle documentation"),
       
   554       Group_Info("no_doc", "suppressed Isabelle documentation")
       
   555     )
       
   556 
       
   557   lazy val bulky_groups: Set[String] =
       
   558     Set.from(notable_groups.flatMap(g => if (g.bulky) Some(g.name) else None))
       
   559 
       
   560   lazy val afp_groups: Set[String] =
       
   561     Set.from(notable_groups.flatMap(g => if (g.afp) Some(g.name) else None))
       
   562 
       
   563 
   533   /* cumulative session info */
   564   /* cumulative session info */
   534 
   565 
   535   private val BUILD_PREFS_BG = "<build_prefs:"
   566   private val BUILD_PREFS_BG = "<build_prefs:"
   536   private val BUILD_PREFS_EN = ">"
   567   private val BUILD_PREFS_EN = ">"
   537 
   568 
   738       }).foldRight(Bibtex.Entries.empty)(_ ::: _)
   769       }).foldRight(Bibtex.Entries.empty)(_ ::: _)
   739 
   770 
   740     def record_proofs: Boolean = options.int("record_proofs") >= 2
   771     def record_proofs: Boolean = options.int("record_proofs") >= 2
   741 
   772 
   742     def is_afp: Boolean = chapter == AFP.chapter
   773     def is_afp: Boolean = chapter == AFP.chapter
   743     def is_afp_bulky: Boolean = is_afp && groups.exists(AFP.groups_bulky.contains)
   774     def is_afp_bulky: Boolean = is_afp && groups.exists(bulky_groups)
   744   }
   775   }
   745 
   776 
   746   object Selection {
   777   object Selection {
   747     val empty: Selection = Selection()
   778     val empty: Selection = Selection()
   748     val all: Selection = Selection(all_sessions = true)
   779     val all: Selection = Selection(all_sessions = true)