diff options
| author | Maxime Dénès | 2015-10-28 11:16:24 +0100 |
|---|---|---|
| committer | Maxime Dénès | 2015-10-28 16:57:55 +0100 |
| commit | 4f8a9d10123bd8aa4d17853a7248d3b3fe8a3625 (patch) | |
| tree | 8cc009910ac8166f477f9425f98a075cac5d889a /dev | |
| parent | 90dfacaacfec8265b11dc9291de9510f515c0081 (diff) | |
Refine Gregory Malecha's patch on VM and universe polymorphism.
- Universes are now represented in the VM by a structured constant containing the
global levels. This constant is applied to local level variables if any.
- When reading back a universe, we perform the union of these levels and return
a [Vsort].
- Fixed a bug: structured constants could contain local universe variables in
constructor arguments, which has to be prevented.
Was showing up for instance when evaluating [cons _ list (nil _)] with
a polymorphic [list] type.
- Fixed a bug: polymorphic inductive types can have an empty stack.
Was showing up when evaluating [bool] with a polymorphic [bool] type.
- Made a few cosmetic changes.
Patch written with Benjamin Grégoire.
Diffstat (limited to 'dev')
| -rw-r--r-- | dev/vm_printers.ml | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/dev/vm_printers.ml b/dev/vm_printers.ml index 272df7b421..1c501df808 100644 --- a/dev/vm_printers.ml +++ b/dev/vm_printers.ml @@ -79,6 +79,7 @@ and ppwhd whd = | Vatom_stk(a,s) -> open_hbox();ppatom a;close_box(); print_string"@";ppstack s + | Vuniv_level lvl -> Pp.pp (Univ.Level.pr lvl) and ppvblock b = open_hbox(); |
