package coq-core
Install
dune-project
Dependency
Authors
Maintainers
Sources
md5=0cfaa70f569be9494d24c829e6555d46
sha512=8ee967c636b67b22a4f34115871d8f9b9114df309afc9ddf5f61275251088c6e21f6cf745811df75554d30f4cebb6682f23eeb2e88b771330c4b60ce3f6bf5e2
doc/coq-core.lib/System/index.html
Module SystemSource
Coqtop specific system utilities
Directories
mkdir path ensures that path exists as a directory, creating the missing suffix if necessary (like Unix' mkdirhier)
exclude_search_in_dirname path excludes path when processing directories
process_directory f path applies f on contents of directory path; fails with Unix_error if the latter does not exists; skips all files or dirs starting with "."
process_subdirectories f path applies f path/file file on each file of the directory path; fails with Unix_error if the latter does not exists; kips all files or dirs starting with "."
Files and load paths
Load path entries remember the original root given by the user. For efficiency, we keep the full path (field directory), the root path and the path relative to the root.
get_output_path fname relativizes fname with respect to the default output directory if fname is not absolute
val find_file_in_path :
?warn:bool ->
CUnix.load_path ->
string ->
CUnix.physical_path * stringfind_file_in_path ?warn loadpath filename returns the directory name and long name of the first physical occurrence filename in one of the directory of the loadpath; fails with a user error if no such file exists; warn if two or more files exist in the loadpath; returns instead the directory name of filename is filename is an absolute path
all_in_path loadpath filename returns the list of the directory name and full name of all physical occurrences of filename in a loadpath binding physical paths to some arbitrary key
trust_file_cache indicates whether we trust the underlying mapped file-system not to change along the execution of Coq. This assumption greatly speeds up file search, but it is often inconvenient in interactive mode
I/O functions
Generic input and output functions, parameterized by a magic number and a suffix. The intern functions raise the exception Bad_magic_number when the check fails, with the full file name and expected/observed magic numbers.
big-endian encoding and decoding of int32 (4 btyes) and int64 (8 bytes)
Clones of Marshal.to_channel (with flush) and Marshal.from_channel (with nice error message)
Time stamps.
Instruction count.
val instructions_between :
c_start:instruction_count ->
c_end:instruction_count ->
instruction_counttype 'a instructions_result =
('a * instruction_count, Exninfo.iexn * instruction_count) Result.tget_toplevel_path program builds a complete path to the executable denoted by program. This involves:
- locating the directory: we don't rely on PATH as to make calls to /foo/bin/coqtop chose the right /foo/bin/coqproofworker
- adding the proper suffixes: .opt/.byte depending on the current mode, + .exe if in windows.
Note that this function doesn't check that the executable actually exists. This is left back to caller, as well as the choice of fallback strategy. We could add a fallback strategy here but it is better not to as in most cases if this function fails to construct the right name you want you execution to fail rather than fall into choosing some random binary from the system-wide installation of Coq.