Commit Graph

255 Commits (43ffa5d9970355230b9a17039e972c022f3b6c43)

Author SHA1 Message Date
Jacques Le Normand 43ffa5d997 fixed recursive local constraints bug
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/gadts@10741 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-10-25 06:37:29 +00:00
Jacques Le Normand a82f06e4c7 added recursive check for local constraint
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/gadts@10740 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-10-25 05:25:33 +00:00
Jacques Le Normand 10f670297c added lookup of constructors by type in env.ml and specification of constructors types in Ppat_construct
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/gadts@10736 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-10-21 07:53:39 +00:00
Jacques Le Normand 304dba8a0f removed Type_variant, fixed bug in GADT exhaustive check
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/gadts@10734 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-10-21 04:02:02 +00:00
Jacques Le Normand 937da0b0df fixed small bug in mcomp
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/gadts@10731 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-10-20 05:57:03 +00:00
Jacques Le Normand 71b84693af open objects and variants are now unified exactly in the same way as before the gadt extension
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/gadts@10728 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-10-19 07:11:25 +00:00
Jacques Le Normand d99cdce090 concrete objects can now add and use local constraints
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/gadts@10727 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-10-19 06:10:33 +00:00
Jacques Le Normand 2d6d4097c7 fixed bug where local constraints were used with objects
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/gadts@10725 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-10-19 05:41:57 +00:00
Jacques Le Normand a1910000e3 fixed bug in syntax extension. Made unification of variants and objects local. Removed personal comments
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/gadts@10724 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-10-19 05:24:36 +00:00
Jacques Le Normand 90a6348480 added syntactic sugar for mixing newtypes and polytypes
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/gadts@10721 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-10-18 04:54:24 +00:00
Jacques Le Normand 7120d35ede exhaustiveness check is working. An algorithm te check compatibility has been implemented for use during unification. For example, int is incompatible with bool and (int,bool) is incompatible with (int,int)
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/gadts@10719 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-10-16 06:09:25 +00:00
Jacques Garrigue 30ca9d3bbe use row for objects in eqtype
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/gadts@10711 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-10-07 09:07:13 +00:00
Jacques Le Normand 6095a598af fixed bug in ctype where the existential type declaration was not added to the environment
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/gadts@10710 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-10-07 08:45:37 +00:00
Jacques Le Normand 5333f52d7c moved things into constructor_description
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/gadts@10709 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-10-07 08:31:59 +00:00
Jacques Le Normand ffc7d7ccec first implementation of gadt friendly pattern exhaustiveness check. It is incomplete and untested. Also, some types are now incompatible
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/gadts@10707 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-10-07 07:12:50 +00:00
Jacques Le Normand 4d5f7f2af5 fixed small bug for levels of reified types in patterns and cleaned up ctype
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/gadts@10704 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-10-04 08:38:22 +00:00
Jacques Le Normand 7fa09d99e3 type equality for objects seem to change slightly with this new unification algorithm
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/gadts@10696 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-09-30 07:46:10 +00:00
Jacques Le Normand b78320d2b8 cleaned up most whitespace/newline additions
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/gadts@10691 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-09-27 06:24:35 +00:00
Jacques Le Normand b2c9e42361 fixed bug, ocamlopt now works
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/gadts@10690 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-09-27 05:38:32 +00:00
Jacques Le Normand 790d987be5 small cleanup
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/gadts@10688 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-09-22 08:48:33 +00:00
Jacques Le Normand 5a750b3e54 existentials are now treated correctly in patterns
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/gadts@10687 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-09-22 07:52:36 +00:00
Jacques Le Normand 10214937fe fixed several bugs, bootstrap finally works!
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/gadts@10686 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-09-22 07:04:22 +00:00
Jacques Le Normand 0d03cf9e9b do not use univars in fixed instances
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/gadts@10685 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-09-21 07:25:08 +00:00
Jacques Le Normand a8a5d86f67 made type parameters ellidable in type declarations
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/gadts@10684 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-09-21 05:30:25 +00:00
Jacques Le Normand 56624533fb switched to abstract types, still needs work on exhaustion type. the code needs to be cleaned up. printfs need to be removed
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/gadts@10682 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-09-19 04:55:40 +00:00
Jacques Le Normand 6de25fef2f first commit
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/gadts@10679 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-09-13 05:28:30 +00:00
Jacques Garrigue 4fd6cd8275 use free univars for explicit polymorphic types
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/gadts@10663 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-08-31 06:34:43 +00:00
Damien Doligez 575555eecd merge changes from branching of 3.12 to release/3.12.0
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@10643 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-08-02 14:37:22 +00:00
Damien Doligez 5e67123bf6 PR#4975: spelling mistakes "overriden" and "informations"
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@10450 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-05-21 12:00:49 +00:00
Jacques Garrigue 9c79ec9120 fix PR#5057, must adjust levels in row fields
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@10446 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-05-21 01:26:16 +00:00
Alain Frisch ad42f8a8f6 Extend nondep_type to deal with 1st class modules.
For instance, in:

module F(X : sig module type S end) = struct type t = (module X.S) end
include F(struct module type S = sig end end)

the resulting type t is turned into an abstract type.



git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@10336 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-04-30 11:59:50 +00:00
Jacques Garrigue 7f758d5c1f fix PR#5026: recursive type checks should use _opt versions
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@10306 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-04-26 08:55:20 +00:00
Damien Doligez 04b1656222 clean up spaces and tabs
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9547 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-01-22 12:48:24 +00:00
Damien Doligez bdc0fadee2 merge changes from release/3.11.1 to release/3.11.2
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9540 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-01-20 16:26:46 +00:00
Alain Frisch 1e5b4a4857 Merge first class modules: svn merge -r 9369:9396 $caml/branches/fstclassmod.
Adapt the Changes file. Bump magic numbers. Bootstrap.



git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9397 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2009-10-26 10:53:16 +00:00
Damien Doligez ed32f569e3 merge changes from ocaml3110 to ocaml3111rc0
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9270 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2009-05-20 11:52:42 +00:00
Jacques Garrigue 7795eafa89 use TypeHash for nondep_type, and add env to nondep_mty
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9263 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2009-05-19 08:17:02 +00:00
Jacques Garrigue 44a068fc92 fix PR#4730
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9170 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2009-03-02 06:41:07 +00:00
Damien Doligez 2b0441401a merge changes between 3.10.2 and the end of branch 3.10
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9079 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2008-10-08 13:09:39 +00:00
Xavier Leroy 636d845eed PR#4261: expand abbreviations one at a time, because we do not know whether expanding to HNF will terminate.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@8985 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2008-08-07 08:22:15 +00:00
Jacques Garrigue 671013f72a distingue expansions publiques et privees dans le cache
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@8922 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2008-07-19 02:13:09 +00:00
Jacques Garrigue b190aa533a reset abbreviation cache when calling expand_abbrev after expand_abbrev_opt
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@8920 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2008-07-18 13:45:02 +00:00
Alain Frisch 8e03390daf Cleanup.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@8878 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2008-04-22 15:45:55 +00:00
Damien Doligez 04aa158cb6 merge changes from 3.10.1 to 3.10.2
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@8823 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2008-02-29 14:21:22 +00:00
Damien Doligez 9ea5edac9a merge changes 3.10.0 -> 3.10.1
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@8768 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2008-01-11 16:13:18 +00:00
Jacques Garrigue f0bbfb7043 sous-typage des abbreviations privees et methodes polymorphes
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@8697 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2007-11-30 12:37:45 +00:00
Pierre Weis 3013dc544d Documentation.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@8683 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2007-11-28 22:26:05 +00:00
Pierre Weis 2a99b8737b Expanding the usual compiler's type-based optimisations to private abbreviations.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@8474 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2007-11-01 18:36:43 +00:00
Pierre Weis 59e0723455 It works: compilers and camlp4 are fully bootstrapped. The ast magic number is not yet changed.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@8418 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2007-10-09 10:29:37 +00:00
Damien Doligez 4167841b16 fusion de la version 3.10.0
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@8416 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2007-10-08 14:19:34 +00:00