(************************************************************************) (* * The Rocq Prover / The Rocq Development Team *) (* v * Copyright INRIA, CNRS and contributors *) (* <O___,, * (see version control and CREDITS file for authors & dates) *) (* \VV/ **************************************************************) (* // * This file is distributed under the terms of the *) (* * GNU Lesser General Public License Version 2.1 *) (* * (see LICENSE file for the text of the license) *) (************************************************************************)
let rec print_list print fmt = function
| [] -> ()
| [x] -> print fmt x
| x :: r -> print fmt x; print_list print fmt r
(** Some excerpt of Util and similar files to avoid loading the whole
module and its dependencies (and hence Compat and Camlp5) *)
let debug = reffalse
(* On a Win32 application with no console, writing to stderr raise a Sys_error "bad file descriptor", hence the "try" below. Ideally, we should re-route message to a log file somewhere, or print in the response buffer.
*)
let log_pp ?(level = `DEBUG) msg = let prefix = match level with
| `DEBUG -> "DEBUG"
| `INFO -> "INFO"
| `NOTICE -> "NOTICE"
| `WARNING -> "WARNING"
| `ERROR -> "ERROR"
| `FATAL -> "FATAL" in if !debug thenbegin try Format.eprintf "[%s] @[%a@]\n%!" prefix Pp.pp_with msg with _ -> () end
let log ?level str = log_pp ?level (Pp.str str)
let rocqify d = Filename.concat d "coq"
let rocqide_config_home () =
rocqify (Glib.get_user_config_dir ())
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.