Damien Doligez
5401ce8473
Update headers for the new license.
...
Remains to be done: remove all headers in testsuite/tests.
2016-02-18 16:59:16 +01:00
Damien Doligez
ee8f71101b
clean up whitespace and cut long lines
2016-02-17 13:36:27 +01:00
Will Crichton
50dd38d4b6
Add support for immediate attribute
2016-02-02 11:45:07 +00:00
Nicolas Ojeda Bar
e343dd0ba6
Adapt emit_external_warnings and error_if_has_deep_native_repr_attributes
2016-01-27 23:05:28 +01:00
Jeremie Dimino
43111b38cd
Replace uses of [Syntaxerr.ill_formed_ast] by asserts
...
All invariants are already checked by [Ast_invariants]
2016-01-27 18:41:12 +00:00
Marc Lasson
934dd9a40b
More errors with unboxed and untagged attributes
...
This commit adds errors for bad uses of @untagged and
@unboxed attributes in external declarations.
There are three possible new errors:
- One when the external does not contain a native version of
the primitive,
- One when the attribute occurs deeply into the type,
- One when the attribute is applied to the whole function type.
2016-01-20 11:51:26 +01:00
Nicolas Ojeda Bar
c242a29b12
Compile with -principal
2016-01-14 15:29:41 +01:00
Jacques Garrigue
ce552ccf20
Fix performance problem with PR#7016 and strengthen code
2015-11-16 16:38:08 +09:00
Jérémie Dimino
95802fe702
Accept unboxed, untagged and noalloc prefixed by "ocaml."
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@16459 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2015-10-06 10:58:27 +00:00
Jérémie Dimino
2c636c5a4f
Support [@@unboxed] and [@@untagged] on external declarations
...
Same as adding [@unboxed]/[@@untagged] to all arguments and the
result. This is to replace the "float" annotation.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@16453 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2015-10-06 10:58:19 +00:00
Jérémie Dimino
d24221cb5f
Use Attr_helper in typing/typedecl.ml
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@16452 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2015-10-06 10:58:18 +00:00
Jérémie Dimino
acd6067a52
Escape '@' in format strings passed to Format.fprintf
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@16441 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2015-09-22 15:07:19 +00:00
Damien Doligez
b860d63145
whitespace cleanup, cut long lines, add some missing headers
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@16415 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2015-09-11 11:58:31 +00:00
Jérémie Dimino
1d196f4ddd
Support [@unboxed] and [@untagged] attributes
...
Adding [@unboxed] (resp [@untagged]) on a primitive argument means
that the argument must passed unboxed (resp untagged) to the external
function. Adding [@unboxed] (resp [@untagged]) on the result means
that the external function returns its result unboxed (resp untagged).
The unboxing (resp untagging) method is derived from the type.
Currently unboxing is suported for: float, int32, int64 and nativeint.
Untagging is supported for int.
This patch also increases the cm{i,o,a,x,xa} magic numbers as the type
Primitive.description is changed.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@16382 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2015-08-25 16:18:46 +00:00
Gabriel Scherer
0d3d003198
GPR#168: fix bad interaction of warning 34 (unused type declaration) with "nonrec"
...
(Frédéric Bour)
Typechecking of nonrec types was still looking for uses in the temporary environment.
This made the compiler fail with "exception Not_found" when warning 34 was enabled.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@16065 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2015-05-01 21:45:10 +00:00
Jacques Garrigue
3b1a33c77b
PR#6672: Unused variance specification allowed in with constraint
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@16024 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2015-04-20 07:57:51 +00:00
Jérémie Dimino
65e605a7f2
Support non-recursive types
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15921 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2015-03-13 11:08:30 +00:00
Jacques Garrigue
a5252548c6
Fix PR#6768: Typechecker overflow the stack on cyclic type
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15810 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2015-02-05 07:47:14 +00:00
Alain Frisch
a033839139
#6688 : allow val declarations as structure items.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15645 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-10 13:37:50 +00:00
Alain Frisch
77bc51fb82
Avoid an index-out-of-bound fatal error when the primitive name is empty.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15621 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-03 09:40:27 +00:00
Alain Frisch
e3ad818fb5
Reintegrate-merge constructors_with_record5 branch.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15556 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-10-14 15:51:30 +00:00
Alain Frisch
808d3de148
Cleanup.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15456 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-10-03 15:30:39 +00:00
Alain Frisch
02bfe9c1ec
Factorize.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15453 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-10-03 15:24:50 +00:00
Alain Frisch
7ba65eb8eb
Cleanup.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15451 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-10-03 15:16:45 +00:00
Damien Doligez
cbfe627f92
merge changes from branch 4.02 from branching (rev 14852) to 4.02.0+rc1 (rev 15121)
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15125 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-08-22 13:45:02 +00:00
Jacques Garrigue
b56dc4b3df
PR#5584: merge open extensible types, extension-patch-4.0.2
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14737 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-05-04 23:08:45 +00:00
Alain Frisch
3b6c0c88a5
Make Parsetree more uniform by keeping locations in all records which have attributes.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14659 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-04-22 15:28:20 +00:00
Alain Frisch
af3d4aa91f
Better locations.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14658 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-04-22 14:36:29 +00:00
Alain Frisch
6fe5dd7cf4
Turn more sig/str items into records. Patch from Leo White.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14597 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-04-15 11:26:00 +00:00
Fabrice Le Fessant
2859498cad
Add %loc_* primitives and corresponding values in Pervasives
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14571 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-04-10 14:11:25 +00:00
Alain Frisch
fa13304327
Distinguish explicitly representation of regular records and inlined records with tag = 0.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/constructors_with_record2@14531 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-04-04 12:37:49 +00:00
Alain Frisch
ab7b60aa8d
Support exception rebinding.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/constructors_with_record2@14530 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-04-04 12:25:21 +00:00
Alain Frisch
1d5122c2ef
Get rid of 'as' clause in inline records. Support re-export of sum types with inline records.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/constructors_with_record2@14529 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-04-04 08:57:05 +00:00
Alain Frisch
6f2fc3f8b0
Allow to give an explicit name (and specify parameters) for inlined records.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/constructors_with_record2@14519 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-04-01 16:15:07 +00:00
Alain Frisch
9b97c9e5c0
Always keep the original type parameters (with ordering) for synthesized record type declarations. Add required existentials, sorted alphabetically.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/constructors_with_record2@14518 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-04-01 12:22:35 +00:00
Alain Frisch
06f465992a
Switch to t.A syntax for synthesized types. Allow the user to refer to such as type.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/constructors_with_record2@14516 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-04-01 11:55:01 +00:00
Alain Frisch
d75e2c8b01
Support for record arguments on exceptions.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/constructors_with_record2@14515 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-04-01 11:46:00 +00:00
Alain Frisch
ce4c5fad1d
Rvert parts of the original commit which are not relevant with the encoding approach.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/constructors_with_record2@14513 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-03-31 16:17:37 +00:00
Alain Frisch
f226f0d26b
Cleanup (use attributes to pass information).
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/constructors_with_record2@14509 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-03-31 14:08:00 +00:00
Alain Frisch
4607a0f8e1
Encode record arguments into extra record declarations.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/constructors_with_record2@14508 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-03-31 12:20:22 +00:00
Alain Frisch
132ff51559
Some preparation for record arguments.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/constructors_with_record2@14505 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-03-28 17:08:53 +00:00
Alain Frisch
6a39aa1e7a
Get rid of some uses of implicit removal of optional arguments.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14496 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-03-26 18:00:48 +00:00
Jacques Garrigue
eaf5646196
Fix PR#6331
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14443 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-02-25 08:16:25 +00:00
Jacques Garrigue
950be999e6
Fix PR#6293
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14400 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-01-14 11:29:02 +00:00
Jacques Garrigue
024c8ad498
Fix PR#6275
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14363 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-12-17 01:39:41 +00:00
Alain Frisch
645dcf25e5
Keep location and attributes in type, label and constructor declarations. Deprecated warning when a deprecated type or constructor is referenced.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14191 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-09-27 10:54:55 +00:00
Alain Frisch
6873f39817
Keep attributes on value declarations in .cmi files (but clear all the location fields, except if -keep-locs is used, of course). Use this to report a warning when a value marked as [@@deprecated] is referenced ( #5854 )
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14188 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-09-26 15:24:11 +00:00
Alain Frisch
c8d20ade02
Do not track unused type declarations created by 'include'.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14158 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-09-17 14:28:31 +00:00
Alain Frisch
af5e566d62
Switch Typetexp.Error, Typedecl.Error, Typemod.Error, Typeclass.Error.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/exception_registration@14114 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-09-12 14:06:48 +00:00
Damien Doligez
7844495624
Merge branch 4.01 from branching point to 4.01.0+rc1
...
Command line used:
svn merge --accept postpone -r 13776:14055 $REPO/version/4.01 .
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14060 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-09-04 15:12:37 +00:00