aboutsummaryrefslogtreecommitdiffhomepage
path: root/library
Commit message (Collapse)AuthorAge
...
| * | | | Protect code against changes in Map interface.Gravatar Maxime Dénès2016-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Map interface of upcoming OCaml 4.03 includes a new union operator. In order to make our homemade implementation of Maps compatible with OCaml versions from 3.12 to 4.03, we define our own signatures for Maps.
* | | | | Remove some unused functions.Gravatar Guillaume Melquiond2016-01-02
| | | | | | | | | | | | | | | | | | | | | | | | | Note: they do not even seem to have a debugging purpose, so better remove them before they bitrot.
* | | | | Remove keys for evar and meta, since they cannot occur.Gravatar Guillaume Melquiond2016-01-02
| | | | |
* | | | | Remove some useless type declarations.Gravatar Guillaume Melquiond2016-01-02
| | | | |
* | | | | Remove Library.mem, which is pointless since 8.5.Gravatar Guillaume Melquiond2015-12-31
| | | | |
* | | | | Avoid a pointless conversion/copy.Gravatar Guillaume Melquiond2015-12-22
| | | | |
* | | | | Do not compose "str" and "to_string" whenever possible.Gravatar Guillaume Melquiond2015-12-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For instance, calling only Id.print is faster than calling both str and Id.to_string, since the latter performs a copy. It also makes the code a bit simpler to read.
* | | | | Move the From logic to Loadpath.expand_path.Gravatar Guillaume Melquiond2015-12-22
| | | | |
* | | | | Do not query module files that have already been loaded.Gravatar Guillaume Melquiond2015-12-22
| |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For a script that does just "Require Reals", this avoids 40k queries. Note that this changes the signature of the FileDependency feedback. Indeed, it no longer provides the physical path to the dependency but only its logical path (since the physical path is no longer available). The physical path could still have been recovered thanks to the libraries_filename_table list. But due to the existence of the overwrite_library_filenames function, its content cannot be trusted. So anyone interested in the actual physical path should now also rely on the FileLoaded feedback.
* | | | COMMENTS: added to some variants of "Globalnames.global_reference" type.Gravatar Matej Kosik2015-12-18
| | | |
* | | | Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2015-12-08
|\| | |
* | | | Leveraging GADTs to provide a better Dyn API.Gravatar Pierre-Marie Pédrot2015-12-05
| | | |
* | | | Specializing the Dyn module to each usecase.Gravatar Pierre-Marie Pédrot2015-12-04
| | | | | | | | | | | | | | | | | | | | | | | | Actually, we never mix the various uses of each dynamic type created through the Dyn module. To enforce this statically, we functorize the Dyn module so that we recover a fresh instance at each use point.
| * | | Univs: fix bug #4443.Gravatar Matthieu Sozeau2015-12-03
| | | | | | | | | | | | | | | | | | | | Do not substitute rigid variables during minimization, keeping their equality constraints instead.
* | | | Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2015-11-29
|\| | |
| * | | Univs: entirely disallow instantiation of polymorphic constants withGravatar Matthieu Sozeau2015-11-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prop levels. As they are typed assuming all variables are >= Set now, and this was breaking an invariant in typing. Only one instance in the standard library was used in Hurkens, which can be avoided easily. This also avoids displaying unnecessary >= Set constraints everywhere.
| * | | Avoid recording spurious Set <= Top.i constraints which are alwaysGravatar Matthieu Sozeau2015-11-27
| | | | | | | | | | | | | | | | valid (when Top.i is global and hence > Set).
* | | | More efficient implementation of equality-up-to-universes in Universes.Gravatar Pierre-Marie Pédrot2015-11-26
| | | | | | | | | | | | | | | | | | | | | | | | Instead of accumulating constraints which are not present in the original graph, we parametrize the equality function by a function actually merging those constraints in the current graph. This prevents doing the work twice.
* | | | Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2015-11-26
|\| | |
* | | | More invariants in UState.Gravatar Pierre-Marie Pédrot2015-11-26
| | | |
| * | | Univs: fix type_of_global_in_context not returning instantiated universe ↵Gravatar Matthieu Sozeau2015-11-20
| | | | | | | | | | | | | | | | contexts.
* | | | Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2015-10-30
|\| | |
| * | | Add a way to get the right fix_exn in external vernacular commandsGravatar Matthieu Sozeau2015-10-30
| | | | | | | | | | | | | | | | involving Futures.
| | * | More uniformity in the style of comparison functions.Gravatar Arnaud Spiwack2015-10-30
| | | |
| | * | Make the code of compare functions linear in the number of constructors.Gravatar Arnaud Spiwack2015-10-29
| | | | | | | | | | | | | | | | | | | | | | | | This scheme has been advised by @gashe on #79. Interestingly there are several comparison functions in Coq which were already implemented with this scheme.
* | | | Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2015-10-29
|\| | | | |/ / |/| |
| * | Univs: local names handling.Gravatar Matthieu Sozeau2015-10-28
| | | | | | | | | | | | | | | Keep user-side information on the names used in instances of universe polymorphic references and use them for printing.
| * | Avoid type checking private_constants (side_eff) again during Qed (#4357).Gravatar Enrico Tassi2015-10-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Side effects are now an opaque data type, called private_constant, you can only obtain from safe_typing. When add_constant is called on a definition_entry that contains private constants, they are either - inlined in the main proof term but not re-checked - declared globally without re-checking them As a safety measure, the opaque data type contains a pointer to the revstruct (an internal field of safe_env that changes every time a new constant is added), and such pointer is compared with the current value store in safe_env when the private_constant is inlined. Only when the comparison is successful the private_constant is not re-checked. Otherwise else it is. In short, we accept into the kernel private constant only when they arrive in the very same order and on top of the very same env they arrived when we fist checked them. Note: private_constants produced by workers never pass the safety measure (the revstruct pointer is an Ephemeron). Sending back the entire revstruct is possible but: 1. we lack a way to quickly compare two revstructs, 2. it can be large.
| * | lib_stack: API to reorder the libstackGravatar Enrico Tassi2015-10-28
| | | | | | | | | | | | | | | | | | | | | For discharging it is important that constants occur in the libstack in an order that respects the dependencies among them. This is impossible to achieve for private constants when they are exported globally without this (ugly IMO) api.
| * | Fix bugs 4389, 4390 and 4391 due to wrong handling of universe namesGravatar Matthieu Sozeau2015-10-27
| | | | | | | | | | | | structure.
* | | Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2015-10-26
|\| |
| * | Declaremods: replace two anomalies by user errors (fix #3974 and #3975)Gravatar Pierre Letouzey2015-10-25
| | | | | | | | | | | | | | | | | | | | | As shown by the code snippets in these bug reports, I've been too hasty in considering these situations as anomalies in commit 466c4cb (at least the one at the last line of consistency_checks). So let's turn these anomalies back to regular user errors, as they were before this commit.
* | | Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2015-10-15
|\| |
| * | Fix some typos.Gravatar Guillaume Melquiond2015-10-13
| | |
* | | Merge branch 'v8.5'Gravatar Pierre-Marie Pédrot2015-10-09
|\| |
| * | Univs: fix bug #3807Gravatar Matthieu Sozeau2015-10-08
| | | | | | | | | | | | Add a flag to disallow minimization to set
| * | Goptions: new value type: optional stringGravatar Enrico Tassi2015-10-08
| | | | | | | | | | | | | | | These options can be set to a string value, but also unset. Internal data is of type string option.
* | | Splitting kernel universe code in two modules.Gravatar Pierre-Marie Pédrot2015-10-06
|/ / | | | | | | | | 1. The Univ module now only cares about definitions about universes. 2. The UGraph module contains the algorithm responsible for aciclicity.
* | Univs: Change intf of push_named_def to return the computed universeGravatar Matthieu Sozeau2015-10-02
| | | | | | | | | | | | | | context Let-bound definitions can be opaque but the whole universe context was not gathered to be discharged at section closing time.
* | Univs: refined handling of assumptionsGravatar Matthieu Sozeau2015-10-02
| | | | | | | | | | | | According to their polymorphic/non-polymorphic status, which imply that universe variables introduced with it are assumed to be >= or > Set respectively in the following definitions.
* | Univs: fix minimization to allow lowering a universe to Set, not Prop.Gravatar Matthieu Sozeau2015-10-02
| |
* | Univs: fix Universe vernacular, fix bug #4287.Gravatar Matthieu Sozeau2015-10-02
| | | | | | | | No universe can be set lower than Prop anymore (or Set).
* | Univs: minimization, adapt to graph invariants.Gravatar Matthieu Sozeau2015-10-02
| | | | | | | | | | We are forced to declare universes that are global and appear in the local constraints as we start from an empty universe graph.
* | Forcing i > Set for global universes (incomplete)Gravatar Matthieu Sozeau2015-10-02
| |
* | Universes: enforce Set <= i for all Type occurrences.Gravatar Matthieu Sozeau2015-10-02
| |
* | Unexport Loadpath.get_paths.Gravatar Guillaume Melquiond2015-09-30
| |
* | Fix dumb typo.Gravatar Guillaume Melquiond2015-09-29
| |
* | Make the interface of System.raw_extern_intern much saner.Gravatar Guillaume Melquiond2015-09-29
| | | | | | | | | | | | There is no reason (any longer?) to create simultaneous closures for interning and externing files. This patch makes the code more readable by separating both functions and their signatures.
* | Prevent States.intern_state and System.extern_intern from looking up files ↵Gravatar Guillaume Melquiond2015-09-29
| | | | | | | | | | | | | | | | | | in the loadpath. This patch causes a bit of code duplication (because of the .coq suffix added to state files) but it makes it clear which part of the code is looking up files in the loadpath and for what purpose. Also it makes the interface of System.extern_intern and System.raw_extern_intern much saner.
* | Remove some uses of Loadpath.get_paths.Gravatar Guillaume Melquiond2015-09-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The single remaining use is in library/states.ml. This use should be reviewed, as it is most certainly broken. The other uses of Loadpath.get_paths did not disappear by miracle though. They were replaced by a new function Loadpath.locate_file which factors all the uses of the function. This function should not be used as it is as broken as Loadpath.get_paths, by definition. Vernac.load_vernac now takes a complete path rather than looking up for the file. That is the way it was used most of the time, so the lookup was unnecessary. For instance, Vernac.compile was calling Library.start_library which already expected a complete path. Another consequence is that System.find_file_in_path is almost no longer used (except for Loadpath.locate_file, obviously). The two remaining uses are System.intern_state (used by States.intern_state, cf above) and Mltop.dir_ml_load for dynamically loading compiled .ml files.