Skip to content

Commit bafd8a7

Browse files
authored
flambda-backend: Turn the (most mature) layouts extension on by default (#2241)
1 parent da5210d commit bafd8a7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+9109
-9129
lines changed

boot/menhir/parser.ml

+8,989-8,988
Large diffs are not rendered by default.

parsing/parse.ml

+3
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,9 @@ let prepare_error err =
147147
@{<hint>Hint@}: Mutable sequences of bytes are available in \
148148
the Bytes module.\n\
149149
@{<hint>Hint@}: Did you mean to use 'Bytes.set'?"
150+
| Missing_unboxed_literal_suffix loc ->
151+
Location.errorf ~loc
152+
"Syntax error: Unboxed integer literals require width suffixes."
150153

151154
let () =
152155
Location.register_error_of_exn

parsing/parser.mly

+2-1
Original file line numberDiff line numberDiff line change
@@ -992,7 +992,8 @@ let unboxed_int sloc int_loc sign (n, m) =
992992
Constant.unboxed ~loc:int_loc (Integer (with_sign sign n, m))
993993
| None ->
994994
if Language_extension.is_enabled unboxed_literals_extension then
995-
expecting int_loc "unboxed integer literal with type-specifying suffix"
995+
raise
996+
Syntaxerr.(Error(Missing_unboxed_literal_suffix (make_loc int_loc)))
996997
else
997998
not_expecting sloc "line number directive"
998999

parsing/syntaxerr.ml

+2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ type error =
2525
| Ill_formed_ast of Location.t * string
2626
| Invalid_package_type of Location.t * string
2727
| Removed_string_set of Location.t
28+
| Missing_unboxed_literal_suffix of Location.t
2829

2930
exception Error of error
3031
exception Escape_error
@@ -39,6 +40,7 @@ let location_of_error = function
3940
| Invalid_package_type (l, _)
4041
| Expecting (l, _)
4142
| Removed_string_set l -> l
43+
| Missing_unboxed_literal_suffix l -> l
4244

4345

4446
let ill_formed_ast loc s =

parsing/syntaxerr.mli

+1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ type error =
3030
| Ill_formed_ast of Location.t * string
3131
| Invalid_package_type of Location.t * string
3232
| Removed_string_set of Location.t
33+
| Missing_unboxed_literal_suffix of Location.t
3334

3435
exception Error of error
3536
exception Escape_error

testsuite/tests/letrec-check/unboxed.ml

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
(* TEST
2-
flags = '-extension layouts'
32
* expect
43
*)
5-
(* CR layouts: Using [-extension layouts] here is not backward-compatible.
4+
(* CR layouts: Using layout annotations here is not backward-compatible.
65
We can delete this when internal ticket 1110 is resolved.
76
*)
87

Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
File "pr6604.ml", line 9, characters 0-2:
22
9 | #1
33
^^
4-
Error: Syntax error: line number directive not expected.
4+
Error: Syntax error: Unboxed integer literals require width suffixes.
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
File "pr6604_2.ml", line 9, characters 1-3:
22
9 | #1 "pr6604.ml"
33
^^
4-
Error: Syntax error: line number directive not expected.
4+
Error: Syntax error: Unboxed integer literals require width suffixes.

testsuite/tests/typing-layouts-bits32/alloc.ml

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
(* TEST
22
* flambda2
3-
flags = "-extension layouts"
43
** native
54
*)
65

testsuite/tests/typing-layouts-bits32/basics.ml

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
(* TEST
2+
* expect
23
* expect
34
flags = "-extension layouts_alpha"
45
* expect
56
flags = "-extension layouts_beta"
6-
* expect
7-
flags = "-extension layouts"
87
*)
98

109
(* This file contains typing tests for the layout [bits32].

testsuite/tests/typing-layouts-bits32/c_api.ml

+2-4
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,15 @@
22
modules = "c_functions.c"
33
* flambda2
44
** native
5+
** bytecode
6+
** native
57
flags = "-extension layouts_alpha"
68
** bytecode
79
flags = "-extension layouts_alpha"
810
** native
911
flags = "-extension layouts_beta"
1012
** bytecode
1113
flags = "-extension layouts_beta"
12-
** native
13-
flags = "-extension layouts"
14-
** bytecode
15-
flags = "-extension layouts"
1614
*)
1715

1816
(* This file tests using external C functions with int32#. *)

testsuite/tests/typing-layouts-bits32/parsing.ml

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
(* TEST
2-
flags = "-extension layouts"
32
* expect
43
*)
54

testsuite/tests/typing-layouts-bits32/stdlib_bits32_u.ml

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
(* TEST
2-
flags = "-extension layouts"
3-
*)
1+
(* TEST *)
42

53
module Int32_u = Stdlib__Int32_u
64

testsuite/tests/typing-layouts-bits32/unboxed_bits32s.ml

+2-4
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
(* TEST
22
* flambda2
33
** native
4+
** bytecode
5+
** native
46
flags = "-extension layouts_alpha"
57
** bytecode
68
flags = "-extension layouts_alpha"
79
** native
810
flags = "-extension layouts_beta"
911
** bytecode
1012
flags = "-extension layouts_beta"
11-
** native
12-
flags = "-extension layouts"
13-
** bytecode
14-
flags = "-extension layouts"
1513
*)
1614

1715
(* This file contains various tests for [int32#]. It's not an expect test

testsuite/tests/typing-layouts-bits64/alloc.ml

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
(* TEST
22
* flambda2
3-
flags = "-extension layouts"
43
** native
54
*)
65

testsuite/tests/typing-layouts-bits64/basics.ml

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
(* TEST
2+
* expect
23
* expect
34
flags = "-extension layouts_alpha"
45
* expect
56
flags = "-extension layouts_beta"
6-
* expect
7-
flags = "-extension layouts"
87
*)
98

109
(* This file contains typing tests for the layout [bits64].

testsuite/tests/typing-layouts-bits64/c_api.ml

+2-4
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,15 @@
22
modules = "c_functions.c"
33
* flambda2
44
** native
5+
** bytecode
6+
** native
57
flags = "-extension layouts_alpha"
68
** bytecode
79
flags = "-extension layouts_alpha"
810
** native
911
flags = "-extension layouts_beta"
1012
** bytecode
1113
flags = "-extension layouts_beta"
12-
** native
13-
flags = "-extension layouts"
14-
** bytecode
15-
flags = "-extension layouts"
1614
*)
1715

1816
(* This file tests using external C functions with int64#. *)

testsuite/tests/typing-layouts-bits64/parsing.ml

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
(* TEST
2-
flags = "-extension layouts"
32
* expect
43
*)
54

testsuite/tests/typing-layouts-bits64/stdlib_bits64_u.ml

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
(* TEST
2-
flags = "-extension layouts"
3-
*)
1+
(* TEST *)
42

53
module Int64_u = Stdlib__Int64_u
64
module Int32_u = Stdlib__Int32_u

testsuite/tests/typing-layouts-bits64/unboxed_bits64s.ml

+2-4
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
(* TEST
22
* flambda2
33
** native
4+
** bytecode
5+
** native
46
flags = "-extension layouts_alpha"
57
** bytecode
68
flags = "-extension layouts_alpha"
79
** native
810
flags = "-extension layouts_beta"
911
** bytecode
1012
flags = "-extension layouts_beta"
11-
** native
12-
flags = "-extension layouts"
13-
** bytecode
14-
flags = "-extension layouts"
1513
*)
1614

1715
(* This file contains various tests for [int64#]. It's not an expect test

testsuite/tests/typing-layouts-float64/alloc.ml

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
(* TEST
22
* flambda2
3-
flags = "-extension layouts"
43
** native
54
*)
65

testsuite/tests/typing-layouts-float64/basics.ml

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
(* TEST
22
* flambda2
3+
** expect
34
** expect
45
flags = "-extension layouts_alpha"
56
** expect
67
flags = "-extension layouts_beta"
7-
** expect
8-
flags = "-extension layouts"
98
*)
109

1110
(* This file contains typing tests for the layout [float64].

testsuite/tests/typing-layouts-float64/c_api.ml

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
modules = "stubs.c"
33
* flambda2
44
reference = "${test_source_directory}/c_api.reference"
5+
** native
6+
** bytecode
57
** native
68
flags = "-extension layouts_alpha"
79
** bytecode

testsuite/tests/typing-layouts-float64/debug_events.ml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
(* TEST
22
* bytecode
3-
flags = "-g -extension layouts"
3+
flags = "-g"
44
*)
55

66
let f1 f i = Stdlib__Float_u.to_float (f i)

testsuite/tests/typing-layouts-float64/unboxed_floats.ml

+12-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
(* TEST
22
* flambda2
33
reference = "${test_source_directory}/unboxed_floats.reference"
4+
** native
5+
** bytecode
46
** native
57
flags = "-extension layouts_alpha"
68
** bytecode
@@ -9,19 +11,23 @@
911
flags = "-extension layouts_beta"
1012
** bytecode
1113
flags = "-extension layouts_beta"
12-
** native
13-
flags = "-extension layouts"
14-
** bytecode
15-
flags = "-extension layouts"
1614
** setup-ocamlc.byte-build-env
1715
ocamlc_byte_exit_status = "2"
1816
*** ocamlc.byte
17+
flags = "-disable-all-extensions"
18+
compiler_reference = "${test_source_directory}/unboxed_floats_disabled.compilers.reference"
19+
**** check-ocamlc.byte-output
20+
** setup-ocamlc.byte-build-env
21+
ocamlc_byte_exit_status = "2"
22+
*** ocamlc.byte
23+
flags = "-only-erasable-extensions"
1924
compiler_reference = "${test_source_directory}/unboxed_floats_disabled.compilers.reference"
2025
**** check-ocamlc.byte-output
21-
22-
2326
*)
2427

28+
(* CR layouts v2.6: Layouts should be erasable and we can remove the
29+
only-erasable-extensions stanza above. *)
30+
2531
(* mshinwell: This test is now only run with flambda2, as the corresponding
2632
ocamltest predicate is reliable for testing whether this is an
2733
flambda-backend build. *)
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
File "unboxed_floats.ml", line 59, characters 11-16:
2-
59 | let pi = #3.14 in
1+
File "unboxed_floats.ml", line 65, characters 11-16:
2+
65 | let pi = #3.14 in
33
^^^^^
44
Error: This construct requires the stable version of the extension "layouts", which is disabled and cannot be used

testsuite/tests/typing-layouts-word/alloc.ml

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
(* TEST
22
* flambda2
3-
flags = "-extension layouts"
43
** native
54
*)
65

testsuite/tests/typing-layouts-word/basics.ml

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
(* TEST
2+
* expect
23
* expect
34
flags = "-extension layouts_alpha"
45
* expect
56
flags = "-extension layouts_beta"
6-
* expect
7-
flags = "-extension layouts"
87
*)
98

109
(* This file contains typing tests for the layout [word].

testsuite/tests/typing-layouts-word/c_api.ml

+2-4
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,15 @@
22
modules = "c_functions.c"
33
* flambda2
44
** native
5+
** bytecode
6+
** native
57
flags = "-extension layouts_alpha"
68
** bytecode
79
flags = "-extension layouts_alpha"
810
** native
911
flags = "-extension layouts_beta"
1012
** bytecode
1113
flags = "-extension layouts_beta"
12-
** native
13-
flags = "-extension layouts"
14-
** bytecode
15-
flags = "-extension layouts"
1614
*)
1715

1816
(* This file tests using external C functions with nativeint#. *)

testsuite/tests/typing-layouts-word/parsing.ml

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
(* TEST
2-
flags = "-extension layouts"
32
* expect
43
*)
54

testsuite/tests/typing-layouts-word/stdlib_nativeint_u.ml

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
(* TEST
2-
flags = "-extension layouts"
3-
*)
1+
(* TEST *)
42

53
module Nativeint_u = Stdlib__Nativeint_u
64
module Int32_u = Stdlib__Int32_u

testsuite/tests/typing-layouts-word/unboxed_nativeints.ml

+2-4
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
(* TEST
22
* flambda2
33
** native
4+
** bytecode
5+
** native
46
flags = "-extension layouts_alpha"
57
** bytecode
68
flags = "-extension layouts_alpha"
79
** native
810
flags = "-extension layouts_beta"
911
** bytecode
1012
flags = "-extension layouts_beta"
11-
** native
12-
flags = "-extension layouts"
13-
** bytecode
14-
flags = "-extension layouts"
1513
*)
1614

1715
(* This file contains various tests for [nativeint#]. It's not an expect test

testsuite/tests/typing-layouts/annots.ml

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
(* TEST
22
* expect
3-
flags = "-extension layouts"
43
* expect
54
flags = "-extension layouts_beta"
65
*)

testsuite/tests/typing-layouts/any_in_types.ml

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
(* TEST
2-
flags = "-extension layouts"
32
* native
43
* bytecode
54
*)

testsuite/tests/typing-layouts/basics.ml

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
(* TEST
22
* expect
3-
flags = "-extension layouts"
43
* expect
54
flags = "-extension layouts_beta"
65
*)

testsuite/tests/typing-layouts/datatypes.ml

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
(* TEST
22
* expect
3-
flags = "-extension layouts"
43
* expect
54
flags = "-extension layouts_beta"
65
*)

0 commit comments

Comments
 (0)