add cluster/hosts configurations to build manager: allows running jobs in parallel on distinct hardware;
(* :mode=isabelle-options: *)
section "Document Preparation"
option browser_info : bool = false for build
-- "generate theory browser information"
option document : string = "" (standard "true") for build
-- "build PDF document (enabled for \"pdf\" or \"true\", disabled for \"\" or \"false\")"
option document_output : string = "" (standard "output") for build
-- "document output directory"
option document_echo : bool = false for build
-- "inform about document file names during session presentation"
option document_variants : string = "document" for build document
-- "alternative document variants (separated by colons)"
option document_tags : string = "" for document
-- "default command tags (separated by commas)"
option document_bibliography : bool = false for document
-- "explicitly enable use of bibtex (default: according to presence of root.bib)"
option document_build : string = "lualatex" (standard "build") for document
-- "document build engine (e.g. build, lualatex, pdflatex)"
option document_logo : string = "" (standard "_") for document
-- "generate named instance of Isabelle logo (underscore means unnamed variant)"
option document_heading_prefix : string = "isamarkup" (standard) for document
-- "prefix for LaTeX macros generated from 'chapter', 'section' etc."
option document_comment_latex : bool = false for document
-- "use regular LaTeX version of comment.sty, instead of historic plain TeX version"
option document_cite_commands : string = "cite,nocite,citet,citep" for document
-- "antiquotation commands to determine the structure of bibliography"
option thy_output_display : bool = false for content
-- "indicate output as multi-line display-style material"
option thy_output_break : bool = false for content
-- "control line breaks in non-display material"
option thy_output_cartouche : bool = false for content
-- "indicate if the output should be delimited as cartouche"
option thy_output_quotes : bool = false for content
-- "indicate if the output should be delimited via double quotes"
option thy_output_margin : int = 76 for content
-- "right margin / page width for printing of display material"
option thy_output_indent : int = 0 for content
-- "indentation for pretty printing of display material"
option thy_output_source : bool = false for content
-- "print original source text rather than internal representation"
option thy_output_source_cartouche : bool = false for content
-- "print original source text rather than internal representation, preserve cartouches"
option thy_output_modes : string = "" for content
-- "additional print modes for document output (separated by commas)"
section "Prover Output"
option pide_reports : bool = true for content
-- "enable reports of PIDE markup"
option show_types : bool = false for content
-- "show type constraints when printing terms"
option show_sorts : bool = false for content
-- "show sort constraints when printing types"
option show_brackets : bool = false for content
-- "show extra brackets when printing terms/types"
option show_question_marks : bool = true for content
-- "show leading question mark of schematic variables"
option show_consts : bool = false for content
-- "show constants with types when printing proof state"
option show_main_goal : bool = false for content
-- "show main goal when printing proof state"
option goals_limit : int = 10 for content
-- "maximum number of subgoals to be printed"
option show_states : bool = false for content
-- "show toplevel states even if outside of interactive mode"
option names_long : bool = false for content
-- "show fully qualified names"
option names_short : bool = false for content
-- "show base names only"
option names_unique : bool = true for content
-- "show partially qualified names, as required for unique name resolution"
option eta_contract : bool = true for content
-- "print terms in eta-contracted form"
option print_mode : string = "" for content
-- "additional print modes for prover output (separated by commas)"
section "Parallel Processing and Timing"
public option threads : int = 0 for build
-- "maximum number of worker threads for prover process (0 = guess from hardware)"
option threads_trace : int = 0
-- "level of tracing information for multithreading"
option threads_stack_limit : real = 0.25
-- "maximum stack size for worker threads (in giga words, 0 = unlimited)"
public option parallel_limit : int = 0 for build
-- "approximative limit for parallel tasks (0 = unlimited)"
public option parallel_print : bool = true for build
-- "parallel and asynchronous printing of results"
public option parallel_proofs : int = 1 for build
-- "level of parallel proof checking: 0, 1, 2"
option parallel_subproofs_threshold : real = 0.01 for build
-- "lower bound of timing estimate for forked nested proofs (seconds)"
option command_timing_threshold : real = 0.1 for build
-- "default threshold for persistent command timing (seconds)"
public option timeout_scale : real = 1.0 for build
-- "scale factor for timeout in Isabelle/ML and session build"
option context_data_timing : bool = false for build
-- "timing for context data operations"
option context_theory_tracing : bool = false for build
-- "tracing of persistent theory values within ML heap"
option context_proof_tracing : bool = false for build
-- "tracing of persistent Proof.context values within ML heap"
section "Detail of Proof Checking"
option record_proofs : int = -1 for content
-- "set level of proofterm recording: 0, 1, 2, negative means unchanged"
option quick_and_dirty : bool = false for content
-- "if true then some tools will OMIT some proofs"
option skip_proofs : bool = false for content
-- "skip over proofs (implicit 'sorry')"
option strict_facts : bool = false for content
-- "force lazy facts when defined in context"
section "Global Session Parameters"
option context : string = "" for content
-- "free-form information for session content (to be interpreted in Isabelle/ML)"
option condition : string = "" for content
-- "required environment variables for subsequent theories (separated by commas)"
option timeout : real = 0 for build
-- "timeout for session build job (seconds > 0)"
option timeout_build : bool = true for build build_sync
-- "observe timeout for session build"
option process_policy : string = ""
-- "command prefix for underlying process, notably ML with NUMA policy"
option process_output_tail : int = 40 for build
-- "build process output tail shown to user (in lines, 0 = unlimited)"
option profiling : string = "" (standard "time") for build
-- "ML profiling (possible values: time, time_thread, allocations)"
option system_log : string = "" (standard "-") for build
-- "output for system messages (log file or \"-\" for console progress)"
option system_heaps : bool = false for build
-- "store session heaps in $ISABELLE_HEAPS_SYSTEM, not $ISABELLE_HEAPS"
section "ML System"
option ML_print_depth : int = 20 for content
-- "ML print depth for toplevel pretty-printing"
public option ML_exception_trace : bool = false
-- "ML exception trace for toplevel command execution"
public option ML_exception_debugger : bool = false
-- "ML debugger exception trace for toplevel command execution"
public option ML_debugger : bool = false
-- "ML debugger instrumentation for newly compiled code"
public option ML_system_64 : bool = false for build build_sync
-- "prefer native 64bit platform (change requires restart)"
public option ML_system_apple : bool = true for build
-- "prefer native Apple/ARM64 platform (change requires restart)"
section "Build Process"
option build_thorough : bool = false
-- "observe dependencies on options with tag 'content' or 'document'"
option build_hostname : string = ""
-- "alternative hostname for build process (default $ISABELLE_HOSTNAME)"
option build_engine : string = "" for build_sync
-- "alternative session build engine"
option build_database : bool = false for build_sync
-- "expose state of build process via central database"
option build_database_slice : real = 300 for build_sync
-- "slice size in MiB for ML heap stored within database"
option build_delay : real = 0.2
-- "delay build process main loop (local)"
option build_delay_master : real = 1.0
-- "delay build process main loop (cluster master)"
option build_delay_worker : real = 0.5
-- "delay build process main loop (cluster worker)"
option build_cluster_expire : int = 50
-- "enforce database synchronization after given number of delay loops"
option build_cluster_root : string = "$USER_HOME/.isabelle/build_cluster"
-- "root directory for remote build cluster sessions"
option build_cluster_identifier : string = "build_cluster"
-- "ISABELLE_IDENTIFIER for remote build cluster sessions"
option build_benchmark_session : string = "FOLP-ex"
-- "representative benchmark session with short build time and requirements"
option build_schedule : string = ""
-- "path to pre-computed schedule"
option build_schedule_initial : string = ""
-- "path to initial pre-computed schedule (may be overwritten during build)"
option build_schedule_outdated_delay : real = 300.0
-- "delay schedule generation loop"
section "Build Manager"
option build_manager_dir : string = "/srv/build"
-- "directory for submissions on build server"
option build_manager_address : string = "https://build.proof.cit.tum.de"
-- "web address for build server"
option build_manager_identifier : string = "build_manager"
-- "isabelle identifier for build manager processes"
option build_manager_cluster : string = "cluster.default"
option build_manager_delay : real = 1.0
-- "delay build manager loop"
option build_manager_poll_delay : real = 60.0
-- "delay build manager poll loop"
option build_manager_ci_jobs : string = "benchmark"
-- "ci jobs that should be executed on repository changes"
section "Editor Session"
public option editor_load_delay : real = 0.5
-- "delay for file load operations (new buffers etc.)"
public option editor_input_delay : real = 0.2
-- "delay for user input (text edits, cursor movement etc.)"
public option editor_generated_input_delay : real = 1.0
-- "delay for machine-generated input that may outperform user edits"
public option editor_output_delay : real = 0.1
-- "delay for prover output (markup, common messages etc.)"
public option editor_consolidate_delay : real = 1.0
-- "delay to consolidate status of command evaluation (execution forks)"
public option editor_prune_delay : real = 15
-- "delay to prune history (delete old versions)"
option editor_prune_size : int = 0
-- "retained size of pruned history (delete old versions)"
public option editor_update_delay : real = 0.5
-- "delay for physical GUI updates"
public option editor_reparse_limit : int = 10000
-- "maximum amount of reparsed text outside perspective"
public option editor_tracing_messages : int = 1000
-- "initial number of tracing messages for each command transaction (0: unbounded)"
public option editor_chart_delay : real = 3.0
-- "delay for chart repainting"
public option editor_continuous_checking : bool = true
-- "continuous checking of proof document (visible and required parts)"
public option editor_output_state : bool = false
-- "implicit output of proof state"
public option editor_document_session : string = ""
-- "session for interactive document preparation"
public option editor_document_auto : bool = false
-- "automatically build document when selected theories are finished"
public option editor_document_delay : real = 2.0
-- "delay for document auto build"
option editor_execution_delay : real = 0.02
-- "delay for start of execution process after document update (seconds)"
option editor_syslog_limit : int = 100
-- "maximum amount of buffered syslog messages"
section "Headless Session"
option headless_consolidate_delay : real = 2.0
-- "delay to consolidate status of command evaluation (execution forks)"
option headless_prune_delay : real = 30
-- "delay to prune history (delete old versions)"
option headless_check_delay : real = 0.5
-- "delay for theory status check during PIDE processing (seconds)"
option headless_check_limit : int = 0
-- "maximum number of theory status checks (0 = unlimited)"
option headless_nodes_status_delay : real = -1
-- "delay for overall nodes status check during PIDE processing (seconds, disabled for < 0)"
option headless_watchdog_timeout : real = 600
-- "watchdog timeout for PIDE processing of broken theories (seconds, 0 = disabled)"
option headless_commit_cleanup_delay : real = 60
-- "delay for cleanup of already imported theories (seconds, 0 = disabled)"
option headless_load_limit : real = 5.0
-- "limit in MiB for loaded theory files (0 = unlimited)"
section "Miscellaneous Tools"
public option find_theorems_limit : int = 40
-- "limit of displayed results"
public option find_theorems_tactic_limit : int = 5
-- "limit of tactic search for 'solves' criterion"
section "Completion"
public option completion_limit : int = 40
-- "limit for completion within the formal context"
public option completion_path_ignore : string = "*~:*.marks:*.orig:*.rej:.DS_Store"
-- "glob patterns to ignore in file-system path completion (separated by colons)"
section "Spell Checker"
public option spell_checker : bool = true
-- "enable spell-checker for prose words within document text, comments etc."
public option spell_checker_dictionary : string = "en"
-- "spell-checker dictionary name"
public option spell_checker_include : string = "words,comment,comment1,comment2,comment3,ML_comment,SML_comment"
-- "included markup elements for spell-checker (separated by commas)"
public option spell_checker_exclude : string = "document_marker,antiquoted,raw_text"
-- "excluded markup elements for spell-checker (separated by commas)"
section "Secure Shell (OpenSSH)"
public option ssh_batch_mode : bool = true
-- "enable SSH batch mode (no user interaction)"
public option ssh_multiplexing : bool = true
-- "enable multiplexing of SSH sessions (ignored on Windows)"
public option ssh_compression : bool = true
-- "enable SSH compression"
public option ssh_alive_interval : real = 30
-- "time interval to keep SSH server connection alive (seconds, ignore value < 0)"
public option ssh_alive_count_max : int = 3
-- "maximum number of messages to keep SSH server connection alive (ignore value < 0)"
section "Phabricator"
option phabricator_version_arcanist : string = "e46025f7a9146f9918bab9d6fbdf6ed1816db5b5"
-- "repository version for arcanist"
option phabricator_version_phabricator : string = "2ba2cbaf9bbf8f88e910d3da0a3cd643e4879e8a"
-- "repository version for phabricator"
section "Theory Export"
option export_theory : bool = false for content
-- "export theory content to Isabelle/Scala"
option export_standard_proofs : bool = false for content
-- "export standardized proof terms to Isabelle/Scala (not scalable)"
option export_proofs : bool = false for content
-- "export proof terms to Isabelle/Scala"
option prune_proofs : bool = false for content
-- "prune proof terms after export (do not store in Isabelle/ML)"
section "Theory update"
option update_inner_syntax_cartouches : bool = false for content update
-- "update inner syntax (types, terms, etc.) to use cartouches"
option update_mixfix_cartouches : bool = false for content update
-- "update mixfix templates to use cartouches instead of double quotes"
option update_control_cartouches : bool = false for content update
-- "update antiquotations to use control symbol with cartouche argument"
option update_path_cartouches : bool = false for content update
-- "update file-system paths to use cartouches"
option update_cite : bool = false for content update
-- "update cite commands and antiquotations"
section "Build Database"
option build_database_server : bool = false for connection build_sync
option build_database_user : string = "" for connection
option build_database_password : string = "" for connection
option build_database_name : string = "" for connection
option build_database_host : string = "" for connection
option build_database_port : int = 0 for connection
option build_database_ssh_host : string = "" for connection
option build_database_ssh_user : string = "" for connection
option build_database_ssh_port : int = 0 for connection
section "Build Log Database"
option build_log_database_user : string = "" for connection
option build_log_database_password : string = "" for connection
option build_log_database_name : string = "" for connection
option build_log_database_host : string = "" for connection
option build_log_database_port : int = 0 for connection
option build_log_ssh_host : string = "" for connection
option build_log_ssh_user : string = "" for connection
option build_log_ssh_port : int = 0 for connection
option build_log_history : int = 30
-- "length of relevant history (in days)"
option build_log_verbose : bool = false for build_sync
-- "extra verbosity for build log database"
section "Build Manager SSH"
option build_manager_ssh_host : string = "build.proof.cit.tum.de" for connection
-- "ssh server on which build manager runs"
option build_manager_ssh_user : string = "" for connection
-- "ssh user to access build manager system"
option build_manager_ssh_group : string = "isabelle"
-- "common group for users on build manager system"
option build_manager_ssh_port : int = 0 for connection
section "Build Manager Database"
option build_manager_database_user : string = "isabelle" for connection
option build_manager_database_password : string = "" for connection
option build_manager_database_name : string = "isabelle_build_manager" for connection
option build_manager_database_host : string = "localhost" for connection
option build_manager_database_port : int = 5432 for connection
option build_manager_database_ssh_host : string = "" for connection
option build_manager_database_ssh_user : string = "" for connection
option build_manager_database_ssh_port : int = 0 for connection
section "Isabelle/Scala/ML system channel"
option system_channel_address : string = "" for connection
option system_channel_password : string = "" for connection
section "Bash process execution server"
option bash_process_debugging : bool = false for connection
option bash_process_address : string = "" for connection
option bash_process_password : string = "" for connection
section "Continuous integration"
option ci_mail_user : string = "" for connection
option ci_mail_password : string = "" for connection
option ci_mail_sender : string = "" for connection
option ci_mail_smtp_host : string = "" for connection
option ci_mail_smtp_port : int = 587 for connection