diff options
| author | Gabriel Scherer <gabriel.scherer@gmail.com> | 2014-05-21 13:23:13 +0000 |
|---|---|---|
| committer | Gabriel Scherer <gabriel.scherer@gmail.com> | 2014-05-21 13:23:13 +0000 |
| commit | e0b000527be1c6e2a93a7b859499378db85b915c (patch) | |
| tree | 4388f10156b712a506fe4423c07325561633d1df /boot | |
| parent | 34fb0d4345d1f842234a01808a366a19bd6c4c74 (diff) | |
| download | ocaml-e0b000527be1c6e2a93a7b859499378db85b915c.tar.gz | |
format+gadts: make format types "relational" to fix %(...%) typing
See the long comment in pervasives.ml for an explanation of the
change. The short summary is that we need to prove more elaborate
properties between the format types involved in the typing of %(...%),
and that proving things by writing GADT functions in OCaml reveals
that Coq's Ltac is a miracle of usability.
Proofs on OCaml GADTs are runtime functions that do have a runtime
semantics: it is legitimate to hope that those proof computations are
as simple as possible, but the current implementation was optimized
for feasability, not simplicity. François Bobot has some interesting
suggestions to simplify the reasoning part (with more equality
reasoning where I used transitivity and symmetry of the
relation profusely), which may make the code simpler in the future
(and possibly more efficient: the hope is that only %(...%) users will
pay a proof-related cost).
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14897 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'boot')
| -rwxr-xr-x | boot/ocamlc | bin | 1662007 -> 1669324 bytes |
| -rwxr-xr-x | boot/ocamldep | bin | 473966 -> 481764 bytes |
| -rwxr-xr-x | boot/ocamllex | bin | 237171 -> 245182 bytes |
3 files changed, 0 insertions, 0 deletions
diff --git a/boot/ocamlc b/boot/ocamlc Binary files differindex 77d85cc719..ba711c23ec 100755 --- a/boot/ocamlc +++ b/boot/ocamlc diff --git a/boot/ocamldep b/boot/ocamldep Binary files differindex 0f81aae10b..8f2cdeed7a 100755 --- a/boot/ocamldep +++ b/boot/ocamldep diff --git a/boot/ocamllex b/boot/ocamllex Binary files differindex d6c30bcdee..4afd4c898f 100755 --- a/boot/ocamllex +++ b/boot/ocamllex |
