package coq-core
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
md5=5d1187d5e44ed0163f76fb12dabf012e
    
    
  sha512=91bc81530fa4f6498961583ad51eac5001f139881788b88e360a866ad8e2a6e2c5bce86d1a580ab4cd4782bf49d48318767df82471ce33ba3ac143e5569ad33c
    
    
  doc/coq-core.interp/Dumpglob/index.html
Module DumpglobSource
This file implements the Coq's .glob file format, which provides information about the objects that are defined and referenced from a Coq file.
The .glob file format is notably used by coqdoc and coq2html to generate links and other documentation meta-data.
Note that we consider this format a legacy one, and no stability guarantees are provided as of today, as we search to replace this format with a more structured and strongly-typed API.
However, we do provide up to date documentation about the format of .glob files below.
The .glob file format
.glob files contain a header, and then a list of entries, with one line per entry.
.glob header
The header consists of two lines:
DIGEST: %md5sum_of_file F%modpath
where %modpath is the fully-qualified module name of the library that the .glob file refers to. %md5sum_of_file may be NO if -dump-glob file was used.
.glob entries
There are 2 kinds of .glob entries:
- *definitions*: these entries correspond to definitions of inductives, functions, binders, notations. They are written as:
%kind %bc:%ec %secpath %name
where %kind is one of {def,coe,subclass,canonstruc,ex,scheme,proj,inst,meth,defax,prfax,thm,prim,class,var,indrec,rec,corec,ind,variant,coind,constr,not,binder,lib,mod,modtype}, meaning:
- defDefinition
- coeCoertion
- thmTheorem
- subclassSub Class
- canonstrucCanonical Declaration
- exExample
- schemeScheme
- classClass declaration
- projProjection from a structure
- instInstance
- methClass Method
- defaxDefinitional assumption
- prfaxLogical assumption
- primPrimitive
- varVariable reference
- indrecInductive
- recInductive (variant)
- corecCoinductive
- indRecord
- variantRecord (variant)
- coindCoinductive Record
- constrConstructor
- notNotation
- binderBinder
- libRequire
- modModule Reference (Import, Module start / end)
- modtypeModule Type
%bc and %ec are respectively the start and end byte locations in the file (0-indexed) %secpath the section path (or <> if no section path) and %name the name of the defined object, or also <> in where no name applies.
Section paths are ...
- In the case of notations, %nameis encoded as:entry:scope:notation_keywhere_is used to replace spaces in the notation key,%entryis left empty if the notation entry isconstr, and similarly%scopeis empty if the corresponding notation has no associated scope.
- For binding variables, :numberis added to distinguish uniquely different binding variables of the same name in a file.
- *references*: which identify the object a particular document piece of text points to; their format is:
R%bc:%ec %filepath %secpath %name %kind
where %bc, %ec, %name, and %kind are as the above; %filepath contains the file module path the object that the references lives in, whereas %name may contain non-file non-directory module names.
push_output o temporarily overrides the output location to o. The original output can be restored using pop_output
Restores the original output that was overridden by push_output
Alias for push_output NoGlob
Deprecated alias for pop_output
val dump_notation_location : 
  (int * int) list ->
  Constrexpr.notation ->
  (Notation.notation_location * Notation_term.scope_name option) ->
  unitval dump_notation : 
  Constrexpr.notation CAst.t ->
  Notation_term.scope_name option ->
  bool ->
  unitRegistration of constant information